07-03-2023, 12:35 AM
(This post was last modified: 07-03-2023, 12:55 AM by PhilOfPerth.)
(07-02-2023, 02:12 AM)OldMoses Wrote: I know you wanted to avoid trig functions, but they are rather handy in this case. Here is one of the simplest trig methods I've found to construct an elliptical shape. The granularity of the image is 1/100th of a radian, so it is quite smooth to the eye. At least as good as my old eyes and laptop screen can reveal.
Code: (Select All)'de La Hire's method of ellipse
'geometric construction of two concentric circles
'the outermost diameter equals the desired ellipse's
'semi major axis, while the inner circle matches the
'semi minor axis.
'a full 360ø rotation is executed and the positions
'are plotted using a COS function of the outer circle's
'resulting X position and SIN function of the inner
'circle's Y position.
SCREEN _NEWIMAGE(1024, 512, 32)
cen_x% = 512 ' screen center x
cen_y% = 256 ' screen center y
semi_maj% = 200 ' Semi major axis of ellipse i.e. outer circle
semi_min% = 50 ' Semi minor axis of ellipse i.e. inner circle
PSET (semi_maj% + cen_x%, cen_y%) ' pre-position graphics cursor
FOR ang = 0 TO 2 * _PI STEP .01 ' granularity of 1/100 radian
x% = semi_maj% * COS(ang) + cen_x% ' x position a COS function of the outer circle
y% = semi_min% * SIN(ang) + cen_y% ' y position a SIN function of the inner circle
LINE STEP(0, 0)-(x%, y%) ' line from previous cursor position
NEXT ang
Thanks OM.
I can cope with those few trig terms.
When I run your code I get a perfect ellipse. But I was looking to change the angle (the two axes of the ellipse). I'm experimenting with ang at the moment.
No luck so far.
Of all the places on Earth, and all the planets in the Universe, I'd rather live here (Perth, W.A.)