Centre and radius of a circle passing through 3 points in a plane: Difference between revisions

Added Phix
(Create task and realize in F#)
 
(Added Phix)
Line 16:
<pre>
Centre = (18.97851566, 16.2654108), radius = 7.354312
</pre>
 
=={{header|Phix}}==
{{trans|F#}}
<!--(phixonline)-->
<syntaxhighlight lang="phix">
with javascript_semantics
function circle(sequence p1, p2, p3)
atom {a,b} = p1, {c,d} = p2, {e,f} = p3,
cx = 0.5*((a*a+b*b)*(f-d)+(c*c+d*d)*(b-f)+(e*e+f*f)*(d-b))/(a*(f-d)+c*(b-f)+e*(d-b)),
cy = 0.5*((a*a+b*b)*(e-c)+(c*c+d*d)*(a-e)+(e*e+f*f)*(c-a))/(b*(e-c)+d*(a-e)+f*(c-a)),
r = sqrt(power(cx-e,2)+power(cy-f,2))/2
return {{cx,cy},r}
end function
 
atom {{cx,cy},r} = circle({22.83,2.07},{14.39,30.24},{33.65,17.31})
printf(1,"Centre = %.8f, %.7f, radius = %.6f\n",{cx,cy,r})
</syntaxhighlight>
{{out}}
<pre>
Centre = 18.97851566, 16.2654108, radius = 7.354312
</pre>
7,820

edits