1. Spiral
- Posted by John Waldrep <JDWaldo at AOL.COM> Nov 09, 1996
- 1814 views
- Last edited Nov 10, 1996
I would greatly appreciate it anyone could send me a small program to generate a black and white spiral. Thank you, John Waldrep JDWaldo at aol.com
2. Re: Spiral
- Posted by Michael Packard <lgp at EXO.COM> Nov 09, 1996
- 1755 views
- Last edited Nov 10, 1996
On Sat, 9 Nov 1996, John Waldrep wrote: > I would greatly appreciate it anyone could send me a small program to > generate a black and white spiral. > Could you be a little more specific? What kind of spiral?, How big? How many turns? How dense? What are you using it for? Michael Packard Lord Generic Productions lgp at exo.com http://exo.com/~lgp A Crash Course in Game Design and Production http://exo.com/~lgp/euphoria
3. Re: Spiral
- Posted by Michael Packard <lgp at EXO.COM> Nov 10, 1996
- 1766 views
On Sat, 9 Nov 1996, John Waldrep wrote: > > I would greatly appreciate it anyone could send me a small program to > generate a black and white spiral. You never gave us any more info, so here's a Black and GREEN 2D spiral: The general equation for a spiral in polar coordinates is r=theta, which is x=r*(sin(theta)) y=r*(cos(theta)) in rectangular. To display this on the screen, you need to multiply x and y by a size factor and add an offset shift the coordinate axis to the center of the screen. In this example the we're in 640x480x16 color mode, so we add 320 to x and 240 to y to center the spiral on the screen. -- spiral.ex without type_check include graphics.e include select.e include get.e constant GRAPHICS_MODE = 18 -- VGA atom size atom x atom y -- switch to graphics screen if not select_mode(GRAPHICS_MODE) then puts(1, "needs VGA graphics\n") abort(1) end if -- spiral for i = 1 to 10 by .5 do --do the spiral is different sizes size =i for r = 0 to 80 by .01 do x=size*r*sin(r)+320 y=size*r*cos(r)+240 pixel(10,{x,y}) end for --Don't clear the screen the last time. if i <10 then clear_screen() end if end for x=wait_key() if graphics_mode(-1) then end if --------------------------------- see, I didn't go to college for nothing... It cost me THOUSANDS AND THOUSANDS of dollars... (yes, I have a math degree) Michael Packard Lord Generic Productions lgp at exo.com http://exo.com/~lgp A Crash Course in Game Design and Production http://exo.com/~lgp/euphoria
4. Re: Spiral
- Posted by Jacques Deschenes <desja at QUEBECTEL.COM> Nov 10, 1996
- 1793 views
- Last edited Nov 11, 1996
--=====================_847703058==_ >On Sat, 9 Nov 1996, John Waldrep wrote: > > I would greatly appreciate it anyone could send me a small program to > generate a black and white spiral. > May be you want to do some hypnotism? The following program draw a rotating spiral. --=====================_847703058==_
5. Re: Spiral
- Posted by Sistema Solar Roos <roos at CTV.ES> Nov 11, 1996
- 1764 views
Este es un mensaje multipartes en formato MIME. --------------379F6CD31019 Content-Transfer-Encoding: quoted-printable With regards to the request for a spiral program by John Waldrep and=20 following reply by Michael Pack, I attach a short, untidy program, with=20 no type checking or otherwise but produces a simple spiral of different=20 size, turns etc.=20 However, interestingly it will not draw in BLACK! I imagine that this is=20 because BLACK is transparent. Can anybody clarify / confirm this? Saludos (Spanish for cheers) Adam H. Jackson P.S. I have only been using Euphoria for the first time last week and am=20 very impressed. So far the only dispointment is the speed of the output=20 of text to the screen and input from the key board. (The buffer fills=20 faster than Euphoria can read it.) I=B4d imagine that this is because it = is=20 controlled through DOS and not direct. Anybody got a solution or include=20 that might help? --------------379F6CD31019 Content-Disposition: inline; filename="SPIRAL.EX" include get.e include graphics.e atom check integer turns,step,size_x,size_y constant pi=3.141596 constant rad=pi/180 -- To convert from Radians to Degrees when multiplied by -- the angle. eg. sin(90*rad)=1 function input(sequence text) -- To print a message a return a number from user sequence inp,cur inp={1,0} puts (1,text) -- message on screen while inp[1] do -- repeat until valid number cur=get_position() -- back to position if not valid inp = get (0) position (cur[1],cur[2]) end while return inp[2] end function -- Main part of program sorry about lazy structuring of the program but I will -- leave something for you to do turns=input("Number of spiral turns ") step=input("\nSpiral steps ") size_x=input("\nMax size x of spiral (1-320) ") size_y=input("\nMax size y of spiral (1-200) ") clear_screen() integer color,x,y,x_old,y_old check=graphics_mode(256) bk_color(BLUE) clear_screen() color=BROWN -- I dont know why BLACK dosent work. (Transparent?) for a=1 to 360*turns by step do if color=BROWN then color=WHITE else color=BROWN end if --Each step a color x=floor(320+cos(a*rad)*a/(360*turns)*size_x) -- fits screen mode y=floor(200+sin(a*rad)*a/(360*turns)*size_y) -- 640 x 400 if a=1 then x_old=x y_old=y end if draw_line(color,{{x_old,y_old},{x,y}}) x_old=x y_old=y end for check=wait_key() --------------379F6CD31019--