|
Post by bluatigro on Jul 14, 2020 5:15:28 GMT -5
testing the lb5 351 graphics
error : no sphere visable
'' bluatigro 14 jul 2020 '' sphere 1.0 lb5 351
WindowWidth = DisplayWidth WindowHeight = DisplayHeight global winw , winh , height winw = WindowWidth winh = WindowHeight global black , red , green , yellow global blue , magenta , cyan , white black = rgb( 0 , 0 , 0 ) red = rgb( 255 , 0 , 0 ) green = rgb( 0 , 255 , 0 ) yellow = rgb( 255 , 255 , 0 ) blue = rgb( 0 , 0 , 255 ) magenta = rgb( 255 , 0 , 255 ) cyan = rgb( 0 , 255 , 255 ) white = rgb( 255 , 255 , 255 ) open "spheres 1.0" for graphics as #m #m "trapclose [quit]" for height = 0 to winh call sphere 0,50,0 , 50 , red next height wait [quit] close #m end ''color math function rgb( r , g , b ) r = int( r ) and 255 g = int( g ) and 255 b = int( b ) and 255 rgb = r + g * 256 + b * 256 * 256 end function function mix( kl1 , f , kl2 ) r1 = int( kl1 ) and 255 g1 = int( kl1 / 256 ) and 255 b1 = int( kl1 / 256 ^ 2 ) and 255 r2 = int( kl2 ) and 255 g2 = int( kl2 / 256 ) and 255 b2 = int( kl2 / 256 ^ 2 ) and 255 r = r1 + ( r2 - r1 ) * f g = g1 + ( g2 - g1 ) * f b = b1 + ( b2 - b1 ) * f mix = rgb( r , g , b ) end function sub sphere x,y,z , d , kl if abs( height - y ) < d then dd = sqr( d * d - ( height - y ) ^ 2 ) * 2 kl = mix( kl , ( height - y ) / d / 2 + .5 , black ) r = int( kl ) and 255 g = int( kl / 256 ) and 255 b = int( kl / 256 ^ 2 ) and 255 #m color( r , g , b ) #m backcolor( r , g , b ) #m place( winw / 2 + x , winh * 5 / 6 - height - y / 4 ) #m down() #m ellipsefilled( dd , dd / 4 ) #m up() end if end sub
|
|
|
Post by Gordon Rahman on Jul 14, 2020 10:04:01 GMT -5
Hi Bluatigro,
It works fine here. LB5x32
Gordon
|
|
|
Post by Carl Gundel on Jul 14, 2020 15:53:02 GMT -5
So now we need to ask what operating system and version? What kind of computer?
|
|
|
Post by Gordon Rahman on Jul 14, 2020 18:10:58 GMT -5
So now we need to ask what operating system and version? What kind of computer? I'm not even sure if I have tested everything on LB5x64. I use LB5x32 as standard. I'm afraid to ask this, but ... do I have to test both? Gordon
|
|
|
Post by Carl Gundel on Jul 15, 2020 7:10:22 GMT -5
So now we need to ask what operating system and version? What kind of computer? I'm not even sure if I have tested everything on LB5x64. I use LB5x32 as standard. I'm afraid to ask this, but ... do I have to test both? Gordon The more testing the better, but you only have so much time right? Thanks for any testing that you've been able to do. You're testing on Windows 10, I imagine? In that case testing 32 and 64 bit is easy since Windows 10 supports both. I understand that brand new Windows 10 installs won't run 32-bit apps though. I'm not sure.
|
|
|
Post by Chris Iverson on Jul 15, 2020 11:26:29 GMT -5
I understand that brand new Windows 10 installs won't run 32-bit apps though. I'm not sure. I would be astounded if that became the case any time soon. There are some Windows 10 SKUs that may be more restricted in terms of apps, but in general, for regular Windows 10, I don't think Microsoft is pulling 32-bit support any time soon.
|
|
|
Post by bluatigro on Jul 27, 2020 3:18:58 GMT -5
trying the sprites
error : sort is not recognized
WindowWidth = DisplayWidth WindowHeight = DisplayHeight global winx , winy , pi winx = WindowWidth winy = WindowHeight pi = atn( 1 ) * 4 global sprite.width , sprite.height , sprite.max global spr.x , spr.y , spr.z , spr.img spr.x = 0 spr.y = 1 spr.z = 2 spr.img = 3 sprite.max = 20 dim spr( sprite.max , 3 ) global anim$ anim$ = "black red green yellow blue pink cyan white" open "sprite 3d 2.0" for graphics as #m #m "trapclose [quit]" for i = 1 to 8 call sprite.clear 100 , 100 kl$ = word$( anim$ , i ) call sprite.ellipse 50 , 50 , 25 , 25 , "black" , kl$ , 5 #m "getbmp " ; kl$ ; " 0 0 " ; sprite.width ; " " ; sprite.height * 2 next i for i = 0 to sprite.max x = r( 0 - winx / 3 , winx / 3 ) y = r( 0 - winy / 3 , winy / 3 ) z = r( 0 - winx / 3 , winx / 3 ) call sprite3d.xyz i , x , y , z spr( i , spr.img ) = ( i and 7 ) + 1 #m "addsprite spr" ; i ; " " ; anim$ next i timer 40 , [timer.tick] wait [timer.tick] scan for i = 0 to sprite.max call get.sprite3d.xyz i , x , y , z call rotate x , z , 5 call sprite3d.xyz i , x , y , z next i call drawallsprites3d wait [quit] close #m end function rad( deg ) rad = deg * pi / 180 end function sub rotate byref k , byref l , deg s = sin( rad( deg ) ) c = cos( rad( deg ) ) hk = k * c - l * s hl = k * s + l * c k = hk l = hl end sub function r( l , h ) r = int( rnd(0) * ( h - l + 1 ) ) + l end function sub drawallsprites3d sort spr() , 0 , sprite.max , spr.z for i = 0 to sprite.max #m "spriteimage spr" ; i ; " " ; word$( anim$ , spr( i , spr.img ) ) #m "spritexy spr" ; i _ ; " " ; int( winx / 2 + spr( i , spr.x ) ) _ ; " " ; int( winy / 2 - spr( i , spr.y ) ) next i #m "drawsprites" end sub sub sprite3d.xyz no , x , y , z spr( no , spr.x ) = x spr( no , spr.y ) = y spr( no , spr.z ) = z end sub sub get.sprite3d.xyz no , byref x , byref y , byref z x = spr( no , spr.x ) y = spr( no , spr.y ) z = spr( no , spr.z ) end sub sub sprite.clear x , y #m "fill white" #m "place 0 " ; y + 1 #m "color black" #m "backcolor black" #m "down" #m "boxfilled " ; x ; " " ; y * 2 #m "up" sprite.width = x sprite.height = y end sub sub sprite.ellipse x , y , rx , ry , kl$ , bkl$ , size #m "place " ; x ; " " ; y #m "color black" #m "backcolor black" #m "size " ; size #m "down" #m "ellipsefilled " ; rx ; " " ; ry #m "up" #m "place " ; x ; " " ; y + sprite.height #m "color " ; kl$ #m "backcolor " ; bkl$ #m "down" #m "ellipsefilled " ; rx ; " " ; ry #m "up" end sub
|
|
|
Post by bluatigro on Jul 29, 2020 7:36:23 GMT -5
test line 3d [ works in jb2 to ]
error : it is not loking nice
''bluatirgo 1 feb 2015 ''3D line cubes example WindowWidth = DisplayWidth WindowHeight = DisplayHeight global winx , winy , frame , key$ , state winx = WindowWidth winy = WindowHeight dim m( 26 * 4 * 4 ) for i = 0 to 3 m( in( 0 , i , i ) ) = 1 next i global rotx , roty , rotz , trans , temp , pi global xyz , xzy , yxz , yzx , zxy , zyx , number rotx = 21 roty = 22 rotz = 23 trans = 24 temp = 25 pi = atn( 1 ) * 4 xyz = 0 xzy = 1 yxz = 2 yzx = 3 zxy = 4 zyx = 5
nomainwin open "3D line" for graphics as #m #m "trapclose [quit]" #m "when characterInput [key]" #m "setfocus" timer 40 , [tmr] wait [tmr] ''the cubes can't be shown on the same time ''the cubes rotate differend from eats other scan #m "fill black" call link 1 , 200,200,0 , frame,frame,frame , xyz , 0 call cube 0,0,0 , 100,100,100 , "red" , 5 call link 1 , 200,-200,0 , frame,frame,frame , xzy , 0 call cube 0,0,0 , 100,100,100 , "cyan" , 5 call link 1 , 0,200,0 , frame,frame,frame , yxz , 0 call cube 0,0,0 , 100,100,100 , "blue" , 5 call link 1 , 0,-200,0 , frame,frame,frame , yzx , 0 call cube 0,0,0 , 100,100,100 , "yellow" , 5 call link 1 , -200,200,0 , frame,frame,frame , zxy , 0 call cube 0,0,0 , 100,100,100 , "green" , 5 call link 1 , -200,-200,0 , frame,frame,frame , zyx , 0 call cube 0,0,0 , 100,100,100 , "pink" , 5
frame = ( frame + 5 ) mod 360 if frame = 0 then state = ( state + 1 ) mod 6 wait [key] key$ = right$( Inkey$ , 1 ) if key$ <> chr$( 27 ) then wait [quit] close #m end '' wil be lib 3dline sub cube mx,my,mz , dx,dy,dz , kl$ , size
call lijn mx+dx,my+dy,mz+dz , mx-dx,my+dy,mz+dz , kl$ , size call lijn mx+dx,my+dy,mz-dz , mx-dx,my+dy,mz-dz , kl$ , size call lijn mx+dx,my-dy,mz+dz , mx-dx,my-dy,mz+dz , kl$ , size call lijn mx+dx,my-dy,mz-dz , mx-dx,my-dy,mz-dz , kl$ , size
call lijn mx+dx,my+dy,mz+dz , mx+dx,my-dy,mz+dz , kl$ , size call lijn mx+dx,my+dy,mz-dz , mx+dx,my-dy,mz-dz , kl$ , size call lijn mx-dx,my+dy,mz+dz , mx-dx,my-dy,mz+dz , kl$ , size call lijn mx-dx,my+dy,mz-dz , mx-dx,my-dy,mz-dz , kl$ , size
call lijn mx+dx,my+dy,mz+dz , mx+dx,my+dy,mz-dz , kl$ , size call lijn mx+dx,my-dy,mz+dz , mx+dx,my-dy,mz-dz , kl$ , size call lijn mx-dx,my+dy,mz+dz , mx-dx,my+dy,mz-dz , kl$ , size call lijn mx-dx,my-dy,mz+dz , mx-dx,my-dy,mz-dz , kl$ , size
end sub
sub lijn x1,y1,z1 , x2,y2,z2 , kl$ , size call spot x1,y1,z1 call spot x2,y2,z2 if z1 < -900 then exit sub if z2 < -900 then exit sub ax = winx/2 + x1 / ( z1 + 1000 ) * 1000 ay = winy/2 - y1 / ( z1 + 1000 ) * 1000 bx = winx/2 + x2 / ( z2 + 1000 ) * 1000 by = winy/2 - y2 / ( z2 + 1000 ) * 1000 #m "color " ; kl$ #m "size " ; size #m "down" #m "line " ; ax ; " " ; ay ; " " ; bx ; " " ; by #m "up" end sub
''wil be lib 3degine sub link no , x , y , z , xz , yz , xy , ax , p if no < 1 or no > 20 then exit sub if p < 0 or p > 20 then exit sub if no = p then exit sub
call copy 0 , rotx call copy 0 , roty call copy 0 , rotz call copy 0 , trans
m( in( rotx , 1 , 1 ) ) = cos( rad( yz ) ) m( in( rotx , 1 , 2 ) ) = 0-sin( rad( yz ) ) m( in( rotx , 2 , 1 ) ) = sin( rad( yz ) ) m( in( rotx , 2 , 2 ) ) = cos( rad( yz ) )
m( in( roty , 0 , 0 ) ) = cos( rad( xz ) ) m( in( roty , 0 , 2 ) ) = 0-sin( rad( xz ) ) m( in( roty , 2 , 0 ) ) = sin( rad( xz ) ) m( in( roty , 2 , 2 ) ) = cos( rad( xz ) )
m( in( rotz , 0 , 0 ) ) = cos( rad( xy ) ) m( in( rotz , 0 , 1 ) ) = 0-sin( rad( xy ) ) m( in( rotz , 1 , 0 ) ) = sin( rad( xy ) ) m( in( rotz , 1 , 1 ) ) = cos( rad( xy ) )
m( in( trans , 3 , 0 ) ) = x m( in( trans , 3 , 1 ) ) = y m( in( trans , 3 , 2 ) ) = z
select case ax case xyz call keer rotx , roty , rotz , no case xzy call keer rotx , rotz , roty , no case yxz call keer roty , rotx , rotz , no case yzx call keer roty , rotz , rotx , no case zxy call keer rotz , rotx , roty , no case zyx call keer rotz , roty , rotx , no case else call keer rotx , roty , rorz , no end select
number = no end sub
function rad( deg ) rad = deg * pi / 180 end function
sub keer a , b , c , no call maal a , b , temp call maal temp , c , no call maal no , trans , temp call maal temp , p , no end sub
function in( no , x , y ) in = no * 16 + x * 4 + y end function
sub copy a , uit for i = 0 to 3 for j = 0 to 3 m( in( uit , i , j ) ) = m( in( a , i , j ) ) next j next i end sub
sub maal a , b , uit for i = 0 to 3 for j = 0 to 3 m( in( uit , i , j ) ) = 0 for k = 0 to 3 m( in( uit , i , j ) ) = m( in( uit , i , j ) ) _ + m( in( a , i , k ) ) * m( in( b , k , j ) ) next k next j next i end sub
sub spot byref x , byref y , byref z no = number hx = m( in( no , 0 , 0 ) ) * x _ + m( in( no , 1 , 0 ) ) * y _ + m( in( no , 2 , 0 ) ) * z _ + m( in( no , 3 , 0 ) ) hy = m( in( no , 0 , 1 ) ) * x _ + m( in( no , 1 , 1 ) ) * y _ + m( in( no , 2 , 1 ) ) * z _ + m( in( no , 3 , 1 ) ) hz = m( in( no , 0 , 2 ) ) * x _ + m( in( no , 1 , 2 ) ) * y _ + m( in( no , 2 , 2 ) ) * z _ + m( in( no , 3 , 2 ) ) x = hx y = hy z = hz end sub
|
|
|
Post by Carl Gundel on Jul 29, 2020 9:51:39 GMT -5
test line 3d [ works in jb2 to ] error : it is not loking nice Describe how it doesn't look nice. Please be more detailed. Thanks.
|
|
|
Post by Rod on Jul 29, 2020 11:03:43 GMT -5
I suspect it is the flickering. I did try invalidate() and I think there was a small improvement. But how to hold the graphics undrawn/displayed till invalidate() is issued.
So an example of using the new buffer and invalidate() might help.
I think that while invalidate() forces a redraw it is not preventing Windows redrawing in the interim. But I guess.
|
|
|
Post by Carl Gundel on Jul 29, 2020 11:35:32 GMT -5
I suspect it is the flickering. I did try invalidate() and I think there was a small improvement. But how to hold the graphics undrawn/displayed till invalidate() is issued. So an example of using the new buffer and invalidate() might help. I think that while invalidate() forces a redraw it is not preventing Windows redrawing in the interim. But I guess. To do this correctly you will need to draw on an in-memory bitmap and then copy that to the window for each frame. Then the flickering will disappear. This will be a feature of LB5.
|
|
|
Post by Rod on Jul 29, 2020 13:15:49 GMT -5
Cool, the buffer will be one of the best improvements over LB4 for me. I also would like to understand if we are leaving segments behind. They may be commands that are respected but I do hope that we can write to the buffer as often as we like without caring about memory use. But if you are supporting segments, capturing and redrawing seems quite at odds with a buffer.
Perhaps you could spend a moment or two to outline how segments and buffer will coexist.
|
|
|
Post by bluatigro on Jul 31, 2020 6:55:20 GMT -5
i tryed invalidate() it is looking better but the flicering is stil there
@ carl : how do i use this good ?
''bluatirgo 31 jul 2020 ''3D line cubes example WindowWidth = DisplayWidth WindowHeight = DisplayHeight global winx , winy , frame , key$ , state winx = WindowWidth winy = WindowHeight dim m( 26 * 4 * 4 ) for i = 0 to 3 m( in( 0 , i , i ) ) = 1 next i global rotx , roty , rotz , trans , temp , pi global xyz , xzy , yxz , yzx , zxy , zyx , number rotx = 21 roty = 22 rotz = 23 trans = 24 temp = 25 pi = atn( 1 ) * 4 xyz = 0 xzy = 1 yxz = 2 yzx = 3 zxy = 4 zyx = 5
nomainwin open "3D line" for graphics as #m #m "trapclose [quit]" #m "when characterInput [key]" #m "setfocus" timer 40 , [tmr] wait [tmr] ''the cubes can't be shown on the same time ''the cubes rotate differend from eats other scan #m "fill black" call link 1 , 200,200,0 , frame,frame,frame , xyz , 0 call cube 0,0,0 , 100,100,100 , "red" , 5 call link 1 , 200,-200,0 , frame,frame,frame , xzy , 0 call cube 0,0,0 , 100,100,100 , "cyan" , 5 call link 1 , 0,200,0 , frame,frame,frame , yxz , 0 call cube 0,0,0 , 100,100,100 , "blue" , 5 call link 1 , 0,-200,0 , frame,frame,frame , yzx , 0 call cube 0,0,0 , 100,100,100 , "yellow" , 5 call link 1 , -200,200,0 , frame,frame,frame , zxy , 0 call cube 0,0,0 , 100,100,100 , "green" , 5 call link 1 , -200,-200,0 , frame,frame,frame , zyx , 0 call cube 0,0,0 , 100,100,100 , "pink" , 5
frame = ( frame + 5 ) mod 360 if frame = 0 then state = ( state + 1 ) mod 6 #m invalidate() wait [key] key$ = right$( Inkey$ , 1 ) if key$ <> chr$( 27 ) then wait [quit] close #m end
sub cube mx,my,mz , dx,dy,dz , kl$ , size
call lijn mx+dx,my+dy,mz+dz , mx-dx,my+dy,mz+dz , kl$ , size call lijn mx+dx,my+dy,mz-dz , mx-dx,my+dy,mz-dz , kl$ , size call lijn mx+dx,my-dy,mz+dz , mx-dx,my-dy,mz+dz , kl$ , size call lijn mx+dx,my-dy,mz-dz , mx-dx,my-dy,mz-dz , kl$ , size
call lijn mx+dx,my+dy,mz+dz , mx+dx,my-dy,mz+dz , kl$ , size call lijn mx+dx,my+dy,mz-dz , mx+dx,my-dy,mz-dz , kl$ , size call lijn mx-dx,my+dy,mz+dz , mx-dx,my-dy,mz+dz , kl$ , size call lijn mx-dx,my+dy,mz-dz , mx-dx,my-dy,mz-dz , kl$ , size
call lijn mx+dx,my+dy,mz+dz , mx+dx,my+dy,mz-dz , kl$ , size call lijn mx+dx,my-dy,mz+dz , mx+dx,my-dy,mz-dz , kl$ , size call lijn mx-dx,my+dy,mz+dz , mx-dx,my+dy,mz-dz , kl$ , size call lijn mx-dx,my-dy,mz+dz , mx-dx,my-dy,mz-dz , kl$ , size
end sub
sub lijn x1,y1,z1 , x2,y2,z2 , kl$ , size call spot x1,y1,z1 call spot x2,y2,z2 if z1 < -900 then exit sub if z2 < -900 then exit sub ax = winx/2 + x1 / ( z1 + 1000 ) * 1000 ay = winy/2 - y1 / ( z1 + 1000 ) * 1000 bx = winx/2 + x2 / ( z2 + 1000 ) * 1000 by = winy/2 - y2 / ( z2 + 1000 ) * 1000 #m "color " ; kl$ #m "size " ; size #m "down" #m "line " ; ax ; " " ; ay ; " " ; bx ; " " ; by #m "up" end sub
sub link no , x , y , z , xz , yz , xy , ax , p if no < 1 or no > 20 then exit sub if p < 0 or p > 20 then exit sub if no = p then exit sub
call copy 0 , rotx call copy 0 , roty call copy 0 , rotz call copy 0 , trans
m( in( rotx , 1 , 1 ) ) = cos( rad( yz ) ) m( in( rotx , 1 , 2 ) ) = 0-sin( rad( yz ) ) m( in( rotx , 2 , 1 ) ) = sin( rad( yz ) ) m( in( rotx , 2 , 2 ) ) = cos( rad( yz ) )
m( in( roty , 0 , 0 ) ) = cos( rad( xz ) ) m( in( roty , 0 , 2 ) ) = 0-sin( rad( xz ) ) m( in( roty , 2 , 0 ) ) = sin( rad( xz ) ) m( in( roty , 2 , 2 ) ) = cos( rad( xz ) )
m( in( rotz , 0 , 0 ) ) = cos( rad( xy ) ) m( in( rotz , 0 , 1 ) ) = 0-sin( rad( xy ) ) m( in( rotz , 1 , 0 ) ) = sin( rad( xy ) ) m( in( rotz , 1 , 1 ) ) = cos( rad( xy ) )
m( in( trans , 3 , 0 ) ) = x m( in( trans , 3 , 1 ) ) = y m( in( trans , 3 , 2 ) ) = z
select case ax case xyz call keer rotx , roty , rotz , no case xzy call keer rotx , rotz , roty , no case yxz call keer roty , rotx , rotz , no case yzx call keer roty , rotz , rotx , no case zxy call keer rotz , rotx , roty , no case zyx call keer rotz , roty , rotx , no case else call keer rotx , roty , rorz , no end select
number = no end sub
function rad( deg ) rad = deg * pi / 180 end function
sub keer a , b , c , no call maal a , b , temp call maal temp , c , no call maal no , trans , temp call maal temp , p , no end sub
function in( no , x , y ) in = no * 16 + x * 4 + y end function
sub copy a , uit for i = 0 to 3 for j = 0 to 3 m( in( uit , i , j ) ) = m( in( a , i , j ) ) next j next i end sub
sub maal a , b , uit for i = 0 to 3 for j = 0 to 3 m( in( uit , i , j ) ) = 0 for k = 0 to 3 m( in( uit , i , j ) ) = m( in( uit , i , j ) ) _ + m( in( a , i , k ) ) * m( in( b , k , j ) ) next k next j next i end sub
sub spot byref x , byref y , byref z no = number hx = m( in( no , 0 , 0 ) ) * x _ + m( in( no , 1 , 0 ) ) * y _ + m( in( no , 2 , 0 ) ) * z _ + m( in( no , 3 , 0 ) ) hy = m( in( no , 0 , 1 ) ) * x _ + m( in( no , 1 , 1 ) ) * y _ + m( in( no , 2 , 1 ) ) * z _ + m( in( no , 3 , 1 ) ) hz = m( in( no , 0 , 2 ) ) * x _ + m( in( no , 1 , 2 ) ) * y _ + m( in( no , 2 , 2 ) ) * z _ + m( in( no , 3 , 2 ) ) x = hx y = hy z = hz end sub
|
|
|
Post by Carl Gundel on Jul 31, 2020 8:27:59 GMT -5
Cool, the buffer will be one of the best improvements over LB4 for me. I also would like to understand if we are leaving segments behind. They may be commands that are respected but I do hope that we can write to the buffer as often as we like without caring about memory use. But if you are supporting segments, capturing and redrawing seems quite at odds with a buffer. Perhaps you could spend a moment or two to outline how segments and buffer will coexist. Why is there a conflict between segments and in-memory bitmaps? I didn't call this feature buffer by the way.
|
|
|
Post by bluatigro on Aug 1, 2020 4:52:18 GMT -5
graphics speed test
WindowWidth = DisplayWidth WindowHeight = DisplayHeight nomainwin global mx , my , d , winx , winy , pi pi = atn( 1 ) * 4 winx = WindowWidth winy = WindowHeight mx = 0 my = 0 d = 10 if d < 1e-13 then d = 1e-13 open "Madelbrot"for graphics as #m #m "trapclose [quit]" start = time$( "ms" ) for x = -100 to 100 for y = -100 to 100 scan cx = x / winx * d + mx cy = y / winy * d + my zx = cx zy = cy tel = 0 while sqr( zx ^ 2 + zy ^ 2 ) < 50 and tel < 512 hx = zx ^ 2 - zy ^ 2 + cx hy = 2 * zx * zy + cy zx = hx zy = hy tel = tel + 1 wend r = sin( rad( tel * 10 ) ) * 127 + 128 g = sin( rad( tel * 10 - 120 ) ) * 127 + 128 b = sin( rad( tel * 10 + 120 ) ) * 127 + 128 #m "color " ; r ; " " ; g ; " " ; b if tel = 512 then #m "color black" #m "goto " ; x + winx / 2 ; " " ; y + winy / 2 #m "down" #m "set " ; x + winx / 2 ; " " ; y + winy / 2 #m "up" next y next x notice "time = " ; time$( "ms" ) - start wait function rad( deg ) rad = deg * pi / 180 end function function nr$( no ) nr$ = right$( "0000" + str$( no ) , 4 ) end function [quit] close #m end
results : JB1 : 114011 JB2 : 114613 LB4.5.1 : 115269 LB5x64 351 : 32773
a big inprovement on speed
|
|