1. BEZIER CURVES

Hi 

I am working on a Bezier Curve Program.

I have the curve !!!

Cannot make it "rotate" 

Any Help ??

new topic     » topic index » view message » categorize

2. Re: BEZIER CURVES

which OS  DOS WINDOWS LINUX ???

Bernie

My files in archive:
WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API 

Can be downloaded here:
http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan

new topic     » goto parent     » topic index » view message » categorize

3. Re: BEZIER CURVES

Les Rogers wrote:
> 
> 
> Hi 
> 
> I am working on a Bezier Curve Program.
> 
> I have the curve !!!
> 
> Cannot make it "rotate" 
> 
> Any Help ??

Try rotating your head 90 degrees either to the left or right - lot easier
than writing nasty algorithms. The point of rotation should be a line drawn
roughly from the bcak of your neck to the throat (I would use ventral and
dorsal, but this is a computing forum)

Oh, and remember to look at the screen while doing it.

Happy rotating!

Chris

new topic     » goto parent     » topic index » view message » categorize

4. Re: BEZIER CURVES

ChrisBurch3 wrote:
> 
> Les Rogers wrote:
> > 
> > 
> > Hi 
> > 
> > I am working on a Bezier Curve Program.
> > 
> > I have the curve !!!
> > 
> > Cannot make it "rotate" 
> > 
> > Any Help ??
> 
> Try rotating your head 90 degrees either to the left or right - lot easier
> than writing nasty algorithms. The point of rotation should be a line drawn
> roughly from the bcak of your neck to the throat (I would use ventral and
> dorsal, but this is a computing forum)
> 
> Oh, and remember to look at the screen while doing it.
> 
> Happy rotating!
> 
> Chris

  You could stick one finger in your mouth and one finger .......Ah, you 
know the rest of it.

  In all seriousness why not draw the curve to a pixmap and rotate that with 
win32dib.

Don Cole

new topic     » goto parent     » topic index » view message » categorize

5. Re: BEZIER CURVES

Les Rogers wrote:
> I am working on a Bezier Curve Program.
> Cannot make it "rotate" 
> Any Help ??

Sure, and by the way I have a problem with a program I'm working on too. Can you
fix that for me?


But seriously folks ...

The very first problem you have here is that you haven't given us anything to
work on ...

We can't see your code.
We can't see what it *is* doing.
We can't see the messages, if any, you are getting.
We can't see what specific efforts you have made to resolve it yourself.

-- 
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell

new topic     » goto parent     » topic index » view message » categorize

6. Re: BEZIER CURVES

Hi,

Thanks to all who answered !!

I obviously was very vague.

My System is :-

SIV - System Information Viewer V3.29 LES::Les

Windows XP Professional (Single User)   V5.01  Build 2600  Service Pack 2  
SiS-741  LES::Les  English (0x0C09)  Australia (61)
Workgroup WORKGROUP          up: 00 00:23:54    2008-05-13 22:50:52  [BIOS 6.00
PG]         Powered by Mains

Resource Usage 43%           Current MB (KB)    Maximum MB (KB)      Free MB
(KB) [528]
System Physical Memory       450 (460,464)      1,024 (1,048,576)    189
(193,832)
System Paging File           350 (357,592)      2,464 (2,523,232)    2,114
(2,165,640)
System File Cache            484 (496,564)      485 (496,652)        0 (88)

Sensor ITE/SiS IT8712F/950 MB 60.0°C (56-61)  I/O +2.90  PSU +5.19 +7.66 -2.99
-3.07  Fans 3,515 0 0

Sempron 3000+ (Thorton)   Family 6 (7)  Model 10 (0A)  Stepping 0 (0)  PAS 16GB
2.00GHz Processor [A2]     Socket A           L1 Code Cache         2-way
  64-byte   64KB  Core 1.58 volts
166MHz System Bus (FSB)    x12.0 Mask 1.0.11  L1 Data Cache         2-way
  64-byte   64KB
2.00GHz Level 2 Cache      Technology 0.13µm  L2 Unified Cache     16-way
  64-byte  512KB  Fan 3,515 RPM
AuthenticAMD               [ MMX+ 3D!+ SSE ]  AMD Sempron(tm) 3000+           
             [ Cache Latency ]


and this program (my re-hash of "polygon" in demo Euphoria)
is what I would like the curve to do

                -- BkCl3Bst.ex  Polygons 2 --
		-----------------------------
include graphics.e
include select.e
include machine.e
include mouse.e
use_vesa(1) if graphics_mode(18)  then  end if
constant X = 1, Y = 2
sequence config
integer nlines, npoints, spacing, solid,klr,kol,kolr
procedure stall()
  for i = 1 to 2750000 do  end for
end procedure
procedure colour()
  klr=rand(14)  kol=rand(14)   kolr=rand(14)
  if klr=kol or klr=kolr  then colour()
  elsif kol=kolr or kol=klr then colour()
  elsif kolr=klr or kolr=kol then colour()
  end if
  bk_color(kolr)
end procedure
colour()
procedure dun()
      if get_key() = 27 then abort(0) end if
       mouse_pointer(0)
       mouse_events(2)
       if sequence(get_mouse()) then  abort(1) end if
   end procedure
procedure poly_pattern()
      sequence points,pts,deltas,dels,history,his
      config = video_config()
      pts=rand(repeat(config[VC_XPIXELS..VC_YPIXELS],npoints))+2
      points = rand(repeat(config[VC_XPIXELS..VC_YPIXELS], npoints))+2
      deltas = rand(repeat({2*spacing-1, 2*spacing-1}, npoints)) - spacing
      dels=rand(repeat({2*spacing-1,2*spacing-1},npoints))-spacing
      history = {}
      his={}
      dun()
    clear_screen()
    while get_key() != 27 do
	if length(history) >= nlines then
	    polygon(0, solid, history[1])
	    history = history[2..nlines]
	end if
	dun()
	if length(his) >= nlines then
	    polygon(0,solid,his[1])
	    his=his[2..nlines]
	end if
	polygon(klr,solid,pts)
	polygon(kol, solid, points)
        dun()
        history = append(history, points)
	his=append(his,pts)
	points += deltas
	pts+=dels
	dun()
	for j = 1 to npoints do
	    if points[j][X] <= 0 or points[j][X] >= config[VC_XPIXELS] then
		deltas[j][X] = -deltas[j][X]
	    end if
	    if points[j][Y] <= 0 or points[j][Y] >= config[VC_YPIXELS] then
		deltas[j][Y] = -deltas[j][Y]
	    end if
	end for
	for j = 1 to npoints do
	    if pts[j][X] <= 0 or pts[j][X] >= config[VC_XPIXELS] then
		dels[j][X] = -dels[j][X]
	    end if
	    if pts[j][Y] <= 0 or pts[j][Y] >= config[VC_YPIXELS] then
		dels[j][Y] = -dels[j][Y]
	    end if
	    dun()
	end for
        if rand(101) = 1 then colour()  end if    -- was 201
        dun()      stall()
    end while
end procedure
while get_key() != 27 do
    nlines = 6   npoints = 4   spacing = 15    solid=0
    dun()      poly_pattern()
end while


and this program is one I wrote.
Turns at certain points to form Kaleidoscope effect !!

include graphics.e
include machine.e
include mouse.e

use_vesa(1)
if graphics_mode(18) then end if

      atom
             a,b,c,d,
             a1,b1,c1,d1,
             a2,b2,c2,d2,
             a3,b3,c3,d3,

             x,y,x1,y1,
             xx,yy,xx1,yy1,
             xxx,yyy,xxx1,yyy1,
             xxxx,yyyy,xxxx1,yyyy1,

             lt,tp,rt,bt,
             lt1,tp1,rt1,bt1,
             lt2,tp2,rt2,bt2,
             lt3,tp3,rt3,bt3,

             kount,kcol,endit
             kount=0  kcol=1      endit=0

      lt=0 tp=0 bt=240 rt=315
      lt1=315 tp1=0 bt1=240 rt1=630
      lt2=0 tp2=240 bt2=480 rt2=315
      lt3=315 tp3=240 bt3=480 rt3=630

      x=235 x1=205 y=200 y1=140
      xx=392 xx1=422 yy=200 yy1=140
      xxx=235 xxx1=205 yyy=280 yyy1=340
      xxxx=392 xxxx1=422 yyyy=280 yyyy1=340

      a=1 b=2 c=2 d=1
      a1=a  b1=b  c1=c  d1=d
      a2=a  b2=b  c2=c  d2=d
      a3=a  b3=b  c3=c  d3=d

   procedure dun()
       mouse_pointer(0)
       mouse_events(2)
       if sequence(get_mouse()) then

         abort(1)
       end if

    end procedure


   procedure kullar()
          if   kcol>=16 then kcol = rand(15)   end if
          if   kcol= GRAY then kcol=YELLOW  end if
          if   kount=50 then kcol=rand(16) end if
          if   kount=60 then kcol+=1 kount=0 end if

     end procedure


      procedure val()

          x-=a y-=b x1-=c y1-=d

          xx+=a1 yy-=b1 xx1+=c1 yy1-=d1

          xxx-=a2 yyy+=b2 xxx1-=c2 yyy1+=d2

          xxxx+=a3 yyyy+=b3 xxxx1+=c3 yyyy1+=d3

      end procedure

      procedure xyopp()
          if  x<lt or  x>rt then a=-a   end if
          if  y<tp or  y>bt then b=-b   end if
          if x1<lt or x1>rt then c=-c   end if
          if y1<tp or y1>bt then d=-d   end if
      end procedure

      procedure xyopp2()
          if  xx<lt1 or  xx>rt1 then a1=-a1   end if
          if  yy<tp1 or  yy>bt1 then b1=-b1   end if
          if xx1<lt1 or xx1>rt1 then c1=-c1   end if
          if yy1<tp1 or yy1>bt1 then d1=-d1   end if
      end procedure

      procedure xyopp3()
          if  xxx<lt2 or  xxx>rt2 then a2=-a2   end if
          if  yyy<tp2 or  yyy>bt2 then b2=-b2   end if
          if xxx1<lt2 or xxx1>rt2 then c2=-c2   end if
          if yyy1<tp2 or yyy1>bt2 then d2=-d2   end if
      end procedure

      procedure xyopp4()
          if  xxxx<lt3 or  xxxx>rt3 then a3=-a3   end if
          if  yyyy<tp3 or  yyyy>bt3 then b3=-b3   end if
          if xxxx1<lt3 or xxxx1>rt3 then c3=-c3   end if
          if yyyy1<tp3 or yyyy1>bt3 then d3=-d3   end if
      end procedure

      procedure stl()
          for i=1 to 1500000 do end for
      end procedure

procedure draw_it()

  for i= 1 to 500  do
     kount+=1
          kullar()

        draw_line(kcol,{{x+a,y+b},{x1+c,y1+d}})
        draw_line(kcol,{{(xxx+a2),(yyy+b2)},{(xxx1+c2),(yyy1+d2)}})
        draw_line(kcol,{{xx+a1,yy+b1},{xx1+c1,yy1+d1}})
        draw_line(kcol,{{xxxx+a3,yyyy+b3},{xxxx1+c3,yyyy1+d3}})

           if get_key()=27 then abort(0) end if

          if get_key()=27 then abort(0) end if
             dun()
              stl()
              val()
              xyopp()
              xyopp2()
              xyopp3()
              xyopp4()
          end for

              clear_screen()
              end procedure

     while endit != 15 do
           draw_it()
           endit+=1
      end while

     --  if system_exec("ex \\euphoria\\uze\\a.ex",0)  then end if
­1.0


and this is a bezier curve program 

include graphics.e
include machine.e
include mouse.e
--    include truecolr.e

use_vesa(1)  if graphics_mode(18) then end if

atom b1,b2,b3,b4 ,x1,x2,x3,x4,y1,y2,y3,y4

x1=50  x2=150  x3=200  x4=250
y1=400 y2=50  y3=300  y4=350
procedure stall()
   for time_lag = 1 to 2500000 do end for
end procedure

procedure dun()
   if get_key()=27 then   abort(0) end if
      mouse_pointer(0)
      mouse_events(2)
      if sequence(get_mouse()) then  abort(1) end if
       if get_key()=27 then   abort(0) end if
  end procedure

procedure draw_it()
   for u = .01 to 1.52 by .001 do              ---- was 0 to 1 by .01
      if get_key()=27 then   abort(0) end if
      dun()
      pixel(rand(5),{u*u*u*(x4+3*(x2-x3)-x1)+3*u*u*(x1-2*x2+x3)+3*u*(x2-x1)+x1,
          u*u*u*(y4+3*(y2-y3)-y1)+3*u*u*(y1-2*y2+y3)+3*u*(y2-y1)+y1})
      dun()     stall()
      if get_key() = 27 then abort(0) end if
   end for
end procedure

while get_key() != 27 do
   dun()
   draw_it()
end while 


and this is a program with many beziers .

Bezier Curves is a Windows XP Screen Saver Program.

I am trying to write "it" in the Euphoria language !!

include graphics.e
include machine.e
include mouse.e
--include truecolr.e

use_vesa(1)  if graphics_mode(18) then end if
atom x1,x2,x3,x4,y1,y2,y3,y4

x1=50  x2=20  x3=150  x4=400
y1=100 y2=200  y3=400  y4=300

procedure stall()
   for time_lag = 1 to 225000000 do end for
end procedure

procedure dun()
   if get_key()=27 then abort(1) end if
   mouse_pointer(0)   mouse_events(2)
   if sequence(get_mouse()) then abort(1) end if
   if get_key()=27 then   abort(1) end if
end procedure

procedure draw_it()
   for t = 0 to 1.0952 by .0001 do
      dun()
      if get_key() = 27 then abort(1) end if
pixel(rand(15),{((1-t)*(1-t)*(1-t)*x1+.123*(1-t)*(1-t)*t*x2+3*(1-t)*t*t*x3+t*t*t*x4),
(1-t)*(1-t)*(1-t)*y1+3*(1-t)*(1-t)*t*y2+.53*(1-t)*t*t*y3+t*t*t*y4})
      dun()
      if get_key() = 27 then abort(1) end if
   end for
   stall()
   x1=rand(600)  x2=rand(600)  x3=rand(600)  x4=rand(600)
   y1=rand(500)  y2=rand(500)  y3=rand(500)  y4=rand(500)
end procedure

while get_key() != 27 do
   if get_key() = 27 then abort(1) end if
   draw_it()
end while

Any help ?

I just would like to have a turning point when the curve reaches 
a top bottom   ??

Hope the above proves I am not mucking around !!

Les.R.

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu