Plotting a wormhole

Post Reply
DrChip
Posts: 167
Joined: Wed Oct 22, 2014 3:26 pm
My devices: iPhone 4 to 6+,iPad mini to iPad air 2

Plotting a wormhole

Post by DrChip »

REM Plotting 3d worm hole
REM iPhone 6 plus / 8.3 b1
REM its slow, any thoughts?
REM enjoy

'graphics screen
graphics

'math
pi=3.1415

'Set the center of the screen..
cntx = Screen_Width()
cnty = Screen_Height()

'Set are camera lens..
LENS = 256
'Start timer for frames per second
T = TIMER

'Main LOOP
loop:
refresh off
r = 40 ' Radius of worm hole 40
z = z + 1 'Z cord of worm hole
Rang = ang * PI/180 'Degrees to Radians
x = r * COS(Rang) 'Polar to Cartesain X
y = r * SIN(Rang) 'Polar to Cartesain Y
Dist = LENZ - z ' Find distance
IF z > 256 THEN ' Check for max Z,..
z = 0 'If true, reduce back to 0
END IF 'End code block
IF z > 0 AND z < 256 THEN 'Make sure z is still on screen
nx = cntx + (LENS * x) / Dist 'Find new X
ny = cnty - (LENS * y) / Dist 'Find new Y
ELSE 'So we don't divide by 0
END IF 'End code block
draw COLOR 0, 0, z/255 'Place blue pixel
draw PIXEL nx, ny
draw COLOR 0, z/255, 0 'Place green pixel
draw PIXEL nx + 1, ny - 1
ang = (ang + 1)%360 'Add angle, MOD keeps it from going over 360
F = F + 1 'Frame counter
refresh on
GOTO loop ' end LOOP

PRINT "Average FPS:"; F / (TIMER - T)' Frames per second equation.
pause 1 'Wait until screen is pressed..
Attachments
image.jpg
image.jpg (397.61 KiB) Viewed 1653 times
image.jpg
image.jpg (387.38 KiB) Viewed 1653 times
image.jpg
image.jpg (322.71 KiB) Viewed 1653 times
image.jpg
image.jpg (271.42 KiB) Viewed 1653 times

Henko
Posts: 814
Joined: Tue Apr 09, 2013 12:23 pm
My devices: iPhone,iPad
Windows
Location: Groningen, Netherlands
Flag: Netherlands

Re: Plotting a wormhole

Post by Henko »

It's a bit faster now, by refreshing the screen less frequent

Code: Select all

graphics  ! refresh off ! option angle degrees
pi=3.14529 ! lens=256
cntx = Screen_Width() ! cnty = Screen_Height()

loop:
r = 40 ! z = z + 1
x = r * COS(ang) ! y = r * SIN(ang)
Dist = LENS - z
IF z > 256 THEN ! z = 0 ! refresh ! end if
IF z > 0 AND z < 256 THEN
  nx = cntx + (LENS * x) / Dist
  ny = cnty - (LENS * y) / Dist
  END IF
draw COLOR 0,0,z/255 ! draw PIXEL nx, ny
draw COLOR 0,z/255,0 ! draw PIXEL nx + 1, ny - 1
ang = (ang + 1)%360
GOTO loop

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: Plotting a wormhole

Post by Mr. Kibernetik »

DRAW PIXEL works with physical pixels, not with points. So this program will run differently on retina and non-retina screens because SCREEN_SCALE() is not respected here.

Post Reply