Function G2(StartX, StartY, EndX, EndY, Radius)

Blitz3D Forums/Blitz3D Programming/Function G2(StartX, StartY, EndX, EndY, Radius)

Is this what your looking for ?

Graphics 640, 480, 32, 2
SetBuffer BackBuffer()
x1#=320
y1#=240
r#=100
While Not KeyHit(1)

	x2# = MouseX()
	y2# = MouseY()
	r# = Abs(MouseZ()*3)+rf#
	q# = Sqr( ((x1 - x2)*(x1 -x2)) + ((y1 - y2)*(y1 - y2)))

	rf#=q#*.5

	x3#=(x1+x2)/2
	y3#=(y1+y2)/2
		
	x# = x3 + Sqr(r^2-(q/2)^2)*(y1-y2)/q
	y# = y3 + Sqr(r^2-(q/2)^2)*(x2-x1)/q  

	angleToStart#=ATan2(y1#-y#,x1#-x#) 
	angleToEnd#=ATan2(y2#-y#,x2#-x#)
	
	LockBuffer()
	For t# = 0 To 1 Step .01
		angle# = angleToStart + ( angleToEnd - angleToStart ) * t
		WritePixel x + Cos( angle ) * r , y + Sin( angle ) * r , $FFFFFF
	Next	
	UnlockBuffer()

	Text 10,10,x
	Text 10,20,y
	Text 10,30,"Start Angle: "+angletostart
	Text 10,40,"End Angle: "+angletoend
	Text 10,50,"radius: " + r

	Flip 0
	Cls
Wend
End