PART 1
So I recently was messing around in SB on my new 3DS, attempting to make a cool looking single screen analog (Hexadecimal) clock.
As you might already know the GCIRCLE command has two modes.
Mode 1: Center point X, Center point Y, Radius, Color Code
Mode 2: Center point X, Center point Y, Radius, Start Angle, End angle, Flag, Color Code
So I drew a (mode 1) circle, and three (mode 2) circles with the flag set to 1 for drawing by Sector.
So I had my basic clock face, but I wanted to add something to it. So looking at the information I knew about the Circles I was drawing on the graphics screen, I looked up if there was a way to determine if a point could be located by radius and angle, and of course that is a thing.
CUTE. Now lets jump into the deep end. unleash the program, by turning off GCLS, GPAINT and VSYNC, and mess with the numbers a bunch.
I will share some of my crazy experiments in PART 2, like these monsters:
I'll also post the source code for these and you can plug in the XFACTOR values to get the same results.
And sadly I don't remember how I made these, but the base program was the same.
EDIT: I think these two were made by messing with the angle between the points, and I drew the lines from the center point to the edge of the shape making a circle effect.

... GCIRCLE 200,120, 73,RGB(H*7,M*3,S*3) 'inner circle GCIRCLE 200,120, 77,RGB(H*7,M*3,S*3) ' outer circle GPAINT 275,120,RGB(H*3.5,M*1.5,S*1.5) 'fill color S2=S-15 'these adjustments are required to point the M2=M-15 'hands to the north when the base value is 0 H2=H-3 'since the default 0 angle is to the right. GCIRCLE 200,120,60,(S2*6)-1,(S2*6)+1,1,#BLACK GCIRCLE 200,120,55,(M2*6)-3,(M2*6)+3,1,#BLACK GCIRCLE 200,120,35,(h2*30)-4,(H2*30)+4,1,#BLACKNOTE: Yes, I later added the seconds to the minute hand's angle adjustment, for a more accurate moving clock hand. same with the Hour hand and the current minutes.
X=RADIUS*COS(ANGLE) Y=RADIUS*SIN(ANGLE)Simply plug in values for RADIUS and ANGLE, and you got your output cord for X,Y. (Make sure to add 200 to X and 120 to Y to center on screen.) Well that is nice and boring, lets mix things up a bit. Lets make RADIUS into a timer and have the point move around.
@LOOP GCLS ANGLE=RAD(T) RADIUS=120 X=RADIUS*COS(ANGLE) Y=RADIUS*SIN(ANGLE) GCIRCLE 200+X,120+Y, 20, RGB(20,50,250) GPAINT 200+X,120+Y,RGB(20,50,250) T=T+0.6 IF T>=360 THEN T=T-360 VSYNC 1 GOTO @LOOPOkay! there is now a blue ball orbiting around the screen. Let's have a little fun. add a big orange/yellow circle in the center, and using the formula add a little moon to the blue ball. In my base program the moon radius timer is set to +5.7 (Make certain to ADD the X and Y cords for the Planet to the X and Y cords of the moon!) Here is a version where I added a line from the point of the blue planet, to the point of a half circle around the sun, using GOFS X,Y of the planet to center the camera on the orbiting body.