	screen 0,640,480,0,0,0 ;CEChE0640,480ŗp
	tx=312.:ty=464. ;@̏ʒu
	emax=200      ;G̘r̐
	ddim x,emax   ;G̘rxW
	ddim y,emax   ;G̘ryW
	ddim rad,emax ;G̊֐߂̊px
	repeat emax   ;G̏ʒu
	x(cnt)=300.
	y(cnt)=200.
	rad(cnt)=0.
	loop
	vrad=0.003;֐߂̉]x
	lrad=0.5  ;֐߂̉]ől
	kyori=24. ;֐ߊԂ̋	

	vv =100 : rr = 0. : sa = 0.3 
	pi = 3.14159 
	emax=20
*main
	redraw 0 ;zʂw
	color  0,0,0 ;Fɍw
	boxf   0,0,640,480 ;wFŉʂhԂ

;L[
	getkey ky,90 : if ky=1 : kyori++
	getkey ky,65 : if ky=1 : kyori--
	getkey ky,88 : if ky=1 : emax++
	getkey ky,83 : if ky=1 : emax--
	getkey ky,67 : if ky=1 : vv++
	getkey ky,68 : if ky=1 : vv--
	getkey ky,86 : if ky=1 : lrad=lrad+0.01
	getkey ky,70 : if ky=1 : lrad=lrad-0.01
	getkey ky,66 : if ky=1 : vrad=vrad+0.0001
	getkey ky,71 : if ky=1 : vrad=vrad-0.0001
	if emax<4  :emax=4
	if emax>199 :emax=199
	if kyori<0 : kyori=0.
	if lrad<0 : lrad=0.
	if vrad<0 : vrad=0.
	

	x(emax-1)=300.;Sx
	y(emax-1)=200.;Sy
;Gړ
	repeat emax-2,1;SƐ[͌vZȂ̂emax-2,1ƂȂ
;vZ֐߂玩@̊px̌vZ
	c=cos(vrad)
	s=sin(vrad)
	dxt=double(ex-x(cnt+1))
	dyt=double(ey-y(cnt+1))
;Ȃꍇ̕
	dxn=x(cnt)-x(cnt+1)
	dyn=y(cnt)-y(cnt+1)
	dpn=(dxt*dxn)+(dyt*dyn)
;Ȅꍇ̕
	if rad(cnt)+vrad<=lrad {;Ŋpx̌EvZ
		dxr=(c*dxn)-(s*dyn)
		dyr=(s*dxn)+(c*dyn)
		dpr=(dxt*dxr)+(dyt*dyr)
	}
	else:dpr=dpn;EȏȂȂ
;̏ꍇ̕
	if rad(cnt)-vrad>=-lrad {;Ŋpx̌EvZ
		dxl= (c*dxn)+(s*dyn)
		dyl=(-s*dxn)+(c*dyn)
		dpl=(dxt*dxl)+(dyt*dyl)
	}
	else:dpl=dpn;EȏȂȂ
;]̑I
	if (dpr>dpn)&(dpr>dpl) {;Ȅꍇ
		rad(cnt)=rad(cnt)+vrad
		x(cnt)=x(cnt+1)+dxr
		y(cnt)=y(cnt+1)+dyr
	}
	if (dpl>dpn)&(dpl>dpr) {;Ȅꍇ
		rad(cnt)-=vrad
		x(cnt)=x(cnt+1)+dxl
		y(cnt)=y(cnt+1)+dyl
	}

;\ꏊ̌vZ
	c=cos(rad(emax-cnt-1))
	s=sin(rad(emax-cnt-1))
	if cnt=1 : px=-kyori/2 : py=-kyori ;G̏ʒu
	;Sɗאڂ֐߂猩ׂ̊֐߂Ƃ̊px
	qx=(c*px)-(s*py)
	qy=(s*px)+(c*py)
	;[ɗאڂ֐߂̈ʒuvZ
	x(emax-cnt-1)=x(emax-cnt)+qx
	y(emax-cnt-1)=y(emax-cnt)+qy
	px=qx
	py=qy
	color 255,255,0
	if (cnt!=emax-2) : line x(emax-cnt)+8,y(emax-cnt)+8,x(emax-cnt-1)+8,y(emax-cnt-1)+8
	pos x(emax-cnt),y(emax-cnt)
	if cnt=1 : mes "" ;S
	if cnt=emax-2 {;Ԃ~̕\
		mes ""   :color $FF : circle x(emax-cnt)+8-vv,y(emax-cnt)+8-vv,x(emax-cnt)+8+vv,y(emax-cnt)+8+vv,0 
		k = atan(mousey-(y(emax-cnt)+8), mousex-(x(emax-cnt)+8)) 
		if k < rr { 
		if absf(k-rr) > absf(k+pi*2-rr) : rr+=0.1 : else : rr-=0.1 
		} 
		if k > rr { 
		if absf(k-rr) < absf(k+(pi*-2)-rr) : rr+=0.1 : else : rr-=0.1 
		} 
		if rr>pi : rr-=pi*2 
		if rr<-pi : rr+=pi*2
		si = sin(rr)*vv : co = cos(rr)*vv 
		ex = (x(emax-cnt)+8)+co-8 : ey = (y(emax-cnt)+8)+si-8 
		pos ex,ey : mes "" 
		line ex+8,ey+8,x(emax-cnt)+8,y(emax-cnt)+8
	};[
	if (cnt!=1)&(cnt!=emax-2) : mes "";
	loop

;fps\
	color 255,255,255
	fp++
	time=gettime(6) 
	if time!=time2{
	fpc=fp
	fp=0}
	pos 0,0
	mes " Fps "+fpc
	mes " AZŐGԂ̋ύX  (default24)    kyori="+kyori
	mes " SXŐG̐ύX      (default20)    emax ="+emax
	mes " DCŐԂۂ̔aύX  (default100)   vv   ="+vv
	mes " FVŉ]pxőlύX(default0.5)   lrad ="+lrad
	mes " GBŉ]xύX      (default0.003) vrad ="+vrad
	mes " ̈ړ                               k    ="+k
	time2=time
	redraw 1 ;ʂXV
	await 16
	getkey syuryo,27:if syuryo=1:end;ESCƋI
	goto *main ;*mainɖ߂