|
Forum Index : Microcontroller and PC projects : PicoMiteVGA DEMO
| Author | Message | ||||
| javavi Guru Joined: 01/10/2023 Location: UkrainePosts: 517 |
Black and White Infinite Art Cubism ![]() MODE 1 Do Q=Int(Rnd*5+3): If Q=7 Then Q=30 A=Rad(360/Q): S=Sin(A): C=Cos(A) X=Rnd*MM.HRes: Y=Rnd*MM.VRes R=Rnd*(Sqr(Y+X)/20)*40+16 For L=-R/5 To R/5 N=(Abs(L)<R/8)*Int(Rnd*2) U=R+L: V=U X1=X+U: Y1=Y+V For I=1 To Q T=V*C-U*S: U=V*S+U*C: V=T X2=X+U: Y2=Y+V Line X1,Y1,X2,Y2,,N X1=X2: Y1=Y2 Next Next Loop While Inkey$="" |
||||
| javavi Guru Joined: 01/10/2023 Location: UkrainePosts: 517 |
3D DISCO BALL ![]() MODE 2 FRAMEBUFFER CREATE FRAMEBUFFER WRITE F Do CLS t=Timer n=7 r=n*16 tr=t-n*50 ra=tr/1234 rb=tr/2345 For a=0 To Pi Step .39268 For b=0 To Pi*2 Step .8-.6*Sin(a) o=Sin(a)*Cos(b) k=Sin(a)*Sin(b) e=Cos(a)*Cos(ra)+k*Sin(ra) x=(o*Cos(rb)+e*Sin(rb))*r+160 y=(e*Cos(rb)-o*Sin(rb))*r+120 If Cos(a)*Sin(ra)-k*Cos(ra)<.05 Then C=Map(Int(Rnd*14)+1) Circle x,y,4,,,C,C Else Circle x,y,1,,,Map(15) EndIf Next b Next a FRAMEBUFFER COPY F,N,B Loop While Inkey$="" Edited 2024-11-27 04:25 by javavi |
||||
| Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1301 |
With small change it also runs on Game*Mite or any other Pico with LCD FRAMEBUFFER create FRAMEBUFFER write f a=100:b=3:xc=160:yc=120 For n=0 To 9:For i=n To 180 Step 10 t=(i+90)*Pi/180:x=a*Cos(t):y=b*Sin(t):cl=(y<0):ball xc+x,n*20+yc+y-112,cl Next : For i=170+n To n Step -10 t=(i-90)*Pi/180:x=a*Cos(t):y=b*Sin(t):cl=(y<0):ball xc+x,n*20+yc+y-112,cl Next :Next Do Blit 0,0,0,200,320,20:Blit 0,20,0,0,320,220:FRAMEBUFFER copy f,n:Pause 20 Loop Sub ball bx,by,cl For d=6 To 1Step -1 If cl Then :Color RGB(255,255-d*42,0):Else :Color RGB(0,255-d*42,255):EndIf Circle bx+d/2,by+d/2,d,d Next End Sub Edited 2024-11-29 02:29 by Martin H. 'no comment |
||||
| stanleyella Guru Joined: 25/06/2022 Location: United KingdomPosts: 2667 |
cool. needs mode 2 on hdmi pico 2. very fast animation, like 3d a bit! |
||||
| stanleyella Guru Joined: 25/06/2022 Location: United KingdomPosts: 2667 |
3d disco ball rotataing x axis and y axis same time?? maybe? |
||||
| javavi Guru Joined: 01/10/2023 Location: UkrainePosts: 517 |
Yes, its axis rotates in three directions, but the ball itself does not spin. Don't you have anything to see this on? |
||||
| Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1301 |
Yes, Mode 2 was included in the original listing. The pseudo 3D visualisation was inspired by the old Amiga demos. The slight offset when drawing the spheres results in the rotation that occurs when simply scrolling up ![]() 'no comment |
||||
| javavi Guru Joined: 01/10/2023 Location: UkrainePosts: 517 |
Have a question for experts of retro computer graphics!? The BBS micro computer had a video mode in which it was possible to form a picture in a palette of 16 colors, and by changing the palette display mode, only 4 colors were displayed. Quickly switching the color palette display mode gave the effect of a moving picture in a cycle. How can this be implemented on PicoMite ? |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10535 |
Using the map command and function. Ages ago Stanley posted an example of doing exactly this. Perhaps he can post a reference |
||||
| Martin H. Guru Joined: 04/06/2022 Location: GermanyPosts: 1301 |
here is an example: Animation using MAP Command Edited 2024-11-29 20:02 by Martin H. 'no comment |
||||
| stanleyella Guru Joined: 25/06/2022 Location: United KingdomPosts: 2667 |
The Amstrad 464 had the same sort of palette switching as the bbc micro. @Matherp sorted it for pico and called it map. On arduino, map is scale a value, on GCBasic they wanted to implement map but wanted another name for it, I suggested scale, which stuck. |
||||
| javavi Guru Joined: 01/10/2023 Location: UkrainePosts: 517 |
Attracting Star Whirlpool ![]() MODE 2 Dim integer cm(15)=(0,14,0,7,0,0,6,0,0,4,0,0,2,0,0,0) Colour Map cm(),cm() Q=.375 For E=1 To 40 Step .025 R=E*E/4:T=R/99 s1=Sin(T):c1=Cos(T) N=5+R/1:A=-Pi*2/N S=Sin(A):C=Cos(A) X=0:Y=R:I=Rnd For L=0 To N I=I+1 And 15: If I=0 Then I=1 Color Map(I) Pixel 160+X*c1*Q-Y*s1,120+X*s1*Q+Y*c1 x1=X*C-Y*S:Y=X*S+Y*C:X=x1 Next Next Do T=cm(1) For i=1 To 15-1:cm(i)=cm(i+1):Next cm(15)=T For i=1 To 15:Map(i)=cm(i):Next Map Set Pause 50 Loop Gratitude: matherp, Martin H., stanleyellaEdited 2024-12-01 01:40 by javavi |
||||
| stanleyella Guru Joined: 25/06/2022 Location: United KingdomPosts: 2667 |
nice one javavi ![]() make it go in reverse maybe? Edited 2024-12-01 05:41 by stanleyella |
||||
| javavi Guru Joined: 01/10/2023 Location: UkrainePosts: 517 |
MODE 2 Dim integer cm(15)=(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) Colour Map cm(),cm() Q=.375 For E=1 To 40 Step .025 R=E*E/4:T=R/99 s1=Sin(T):c1=Cos(T) N=5+R/1:A=-Pi*2/N S=Sin(A):C=Cos(A) X=0:Y=R:I=Int(Rnd) For L=0 To N I=I+1 And 15: If I=0 Then I=1 Color Map(I) Pixel 160+X*c1*Q-Y*s1,120+X*s1*Q+Y*c1 x1=X*C-Y*S:Y=X*S+Y*C:X=x1 Next Next Do T=cm(15) For i=15 To 1+1 Step -1:cm(i)=cm(i-1):Next cm(1)=T For i=1 To 15:Map(i)=cm(i):Next Map Set Pause 50 Loop Edited 2024-12-01 06:11 by javavi |
||||
| stanleyella Guru Joined: 25/06/2022 Location: United KingdomPosts: 2667 |
nice! is pico and mmbasic brill? looks like star trek ds9 wormhole :) Edited 2024-12-01 07:48 by stanleyella |
||||
| javavi Guru Joined: 01/10/2023 Location: UkrainePosts: 517 |
Wonderful Beautiful Amazing Love Fantastic Brilliant Awesome![]() Edited 2024-12-02 03:50 by javavi |
||||
| javavi Guru Joined: 01/10/2023 Location: UkrainePosts: 517 |
Toroidal Reactor ITER ![]() ![]() MODE 2 Map Reset For U=0 To 159 x1=U/128-1.25 For V=0 To 239 y1=V/128-1 X=0:Y=X:Z=-2.4 Do k1=Sqr(X*X+Z*Z)-2 d1=1-Sqr(k1*k1+Y*Y) X=X+x1*d1:Y=Y+y1*d1:Z=Z+d1 Loop Until d1<.005 v1=Atn(Z/X):u1=Atn(Y/k1) sColor(): Pixel U,V v1=3.13-v1 sColor(): Pixel 319-U,V Next Next Sub sColor() p=Sin(Int((u1+v1)*40)*99)*98 c=15 And ((u1-v1+p)*24*Abs(Sin(p))) Color Map(c) End Sub Dim integer cm(15)=(0,15,7,1,0,0,0,0,0,0,0,0,0,0,0,0) Colour Map cm(),cm() Do T=cm(1) For i=1 To 15-1:cm(i)=cm(i+1):Next cm(15)=T For i=1 To 15:Map(i)=cm(i):Next Map Set Pause 50 Loop Edited 2024-12-02 04:09 by javavi |
||||
| stanleyella Guru Joined: 25/06/2022 Location: United KingdomPosts: 2667 |
that's impressive! thanks. I had to learn trig years after school. never used it until started using pics |
||||
| twofingers Guru Joined: 02/06/2014 Location: GermanyPosts: 1646 |
Neat! I immediately thought of "Wendelstein".In my version, I save the image when it is created for the first time and load it when it is repeated. This is a bit faster - I'm so impatient! I changed the rotating palette as follows: Dim integer cm(15)=(15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0) This makes the result more colorful. Best regards Michael Edited 2024-12-02 06:05 by twofingers causality ≠ correlation ≠ coincidence |
||||
| javavi Guru Joined: 01/10/2023 Location: UkrainePosts: 517 |
MODE 2 Map Reset For U=0 To 159 x1=U/128-1.25 For V=0 To 239 y1=V/128-1 X=0:Y=X:Z=-2.4 Do k=Sqr(X*X+Z*Z)-2 d=1-Sqr(k*k+Y*Y) X=X+x1*d:Y=Y+y1*d:Z=Z+d Loop Until d<.005 v1=Atn(Z/X):u1=Atn(Y/k) sColor(): Pixel U,V v1=3.13-v1 sColor(): Pixel 319-U,V Next Next Sub sColor() p=Sin(Int((u1+v1)*40)*99)*98 c=15 And ((u1-v1+p)*24*Abs(Sin(p))) Color Map(c) End Sub 'Dim integer cm(15)=(0,15,7,1,0,0,0,0,0,0,0,0,0,0,0,0) Dim integer cm(15)=(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) Colour Map cm(),cm() Do T=cm(0) For i=0 To 14:cm(i)=cm(i+1):Next cm(15)=T For i=0 To 15:Map(i)=cm(i):Next Map Set Pause 50 Loop |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |