CFXYZ - 3D Grapher---Casio-program 2

3744 visningar
uppladdat: 2007-06-05
Inactive member

Inactive member

Nedanstående innehåll är skapat av Mimers Brunns besökare. Kommentera arbete
Dehär programmet ritar 3d-grafer I olika färger (grön, blå och orange, förutsatt att du har färggrafräknare).
Du behöver ungefär 9,5 KB för att programmet ska fungera fullständigt. Vad du behöver göra är att skriva en funktion I läget RUN och spara det I funktionsminnet f1, sedan startar du programmet från PRGM-läget.
Programmet funkar på de 3 senaste casiomodellerna och finns på Internet. Jag har bara ”justerat” den, tagit bort det som är onödigt (onödigt=saker som inte kommer till användning och som enbart tar plats i minnet) och gjort några ändringar. Programmet här skrivet så att det tar så lite som möjligt av minnet.
Värt att tänka på: Ha inte lösenord för att öppna programmet. Du kommer säkert att ha många fel när du skriver programmet.
Om du har ett fel stoppas programmet och så kan du trycka en valfri piltangent så hittar räknaren felet du gjort. Har du däremot förseglat programmet med lösenord går det inte att hitta felet med räknarens hjälp, utan du måste gå genom vartenda kommando (och det är jäkla jobbigt, tro mig!!!)

Storlek: ca 4,83 KB (4826 byte)

1.Skriv en funktion/formel I läget RUN
2.spara i f1 (skriv funktionen och tryck OPTN, F6,F6,F3,F1,F1)
3.starta programmet från läget PRGM

Rotation: Rotera på 3d-grafen (du väljer vilken sida av grafen som ska visas)
Resolution: funkar som ”pixlar”. Du anger ett tal som funkar som antalet pixlar. Stora tal innebär bättre bild men det tar större minne och programmet funkar segt.
Domain: bestämmer storleken på grafen (grafbilden)
Pan: ”displacement from the origin you want the viewing area” (har varken behövt det eller använt det)
Perspective: visuell effekt (1-100). ”Perspektiv av realism”
Autozoom: (on eller off, 1 eller 0). Automatiskt finner den bästa ViewWindow för grafbilden.

Tangenter:
F1-F6 = sparar bilden
Shift = visar bildens koordinater
Alpha = döljer grafens koordinater
Riktningsknapparna = används för snabbrotation (grafen ritas om när du trycker en riktningsknapp)
EXE/EXIT = går ut ur grafen och tillbaka till programmets huvudmeny

Teckenförklaringar:
> - större än
<> - ej lika med
< - mindre än
-> - sätts i variabel… ex: 1->K sätter 1 i K alltså blir K=1
=> - leder till (att)
/ - delat med
>= - större än eller lika med
=< - mindre än eller lika med

OBS: hittar di snedsträck av den här typen: \ är det bara att ignorera det.
Det som står inom parantes i utsidan ("marginalen") är kommentarer och ska inte skrivas i programmet.

Här börjar programmet:

{0,0,0
0->A~Z
45->G
30->H
1->K
2->L
1->M
10->P~Q
AxesOn
Lbl 0
ClrText
Orange "CFXYZ - 3D Grapher"
Locate 2,2,"Rotations"
Locate 2,3,"Colour"
Locate 2,4,"Settings"
Locate 2,5,"Autozoom Exit"
Locate 2,6,"About"
Locate 2,7,"Draw Graph"
2->B
1->D
1->F
While A<>31
F=16=>5->B
Locate F,B,"=>" (alla “=>” kan bytas mot ”->”(smaksak!))
B->C
D->E
Getkey->A
A=37=>Isz B
A=28=>Dsz B
B<>5=>1->D
A=27 Or A=38=>Dsz D
B=8=>2->B
B=1=>7->B
D=0=>2->D
If B<>C
Then Locate F,C," "
IfEnd
If D<>E
Then Locate F,B," "
IfEnd
D=1=>1->F
D=2=>16->F
WhileEnd
ClrText
If F=16
Then List Ans[1->X
List Ans[2->Y
List Ans[3->Z
Identity 1->Mat V
Mat V->Mat X
Mat V->Mat Y
ClrText
Stop
IfEnd
B=2=>Goto1
B=3=>Goto2
B=4=>Goto3
B=5=>Goto4
B=6=>Goto5
B=7=>Goto6
Lbl 1
Orange "Rotations"
Locate 2,2,"Front"
Locate 2,3,"Back"
Locate 2,4,"Left"
Locate 2,5,"Right"
Locate 2,6,"Top Manual..."
Locate 2,7,"Bottom Exit"
For 2->A To 5
Locate 12,A,"Preset"
Locate 18,A,A-1
Next
0->A
2->B
1->D
While A<>31
Locate D,B,"=>"
B->C
D->E
Getkey->A
A=37=>Isz B
A=28=>Dsz B
A=27 Or A=38=>D-10->D
B=8=>2->B
B=1=>7->B
D<1=>11->D
If B<>C
Then Locate D,C," "
IfEnd
If D<>E
Then Locate E,B," "
IfEnd
WhileEnd
ClrText
D=1=>0->G~I
B=3 And D=1=>180->G
B=4 And D=1=>90->G
B=5 And D=1=>(-)90->G ((-) är tangenten för negativa tal)
B=6 And D=1=>90->H
B=7 And D=1=>(-)90->H
D=11 And B<6=>0->I
If B=2 And D=11
Then 45->G
30->H
IfEnd
If B=3 And D=11 Then 135->G
30->H
IfEnd
If B=4 And D=11
Then 225->G
30->H
IfEnd
If B=5 And D=11
Then 315->G
30->H
IfEnd
If B=6 And D=11
Then ClrText
Orange "Z Rotation"
Green "Now:"
Locate 5,2,G
"New"?->G
ClrText
Orange "Tilt" Green "Now:"
Locate 5,2,H
"New"?->H
ClrText
Orange "Screen Rotation"
Green "Now:"
Locate 5,2,I
"New"?->I
IfEnd
Goto0
Lbl 2
For 1->D To 2
0->A
3->B
ClrText
D=1=>Orange "X-Colour"
D=2=>Orange "Y-Colour"
Green "Now:"
D=1=>L->E
D=2=>M->E
E=0=>Locate 5,2,"None"
E=1=>Locate 5,2,"Green "
E=2=>Locate 5,2,"Blue "
E=3=>Locate 5,2,"Orange "
Locate 2,3,"None"
Locate 2,4,"Green "
Locate 2,5,"Blue "
Locate 2,6,"Orange "
While A<>31
Locate 1,B,"=>"
B->C
Getkey->A
A=37 Or A=27=>Isz B
A=28 Or A=38=>Dsz B
B=7=>3->B
B=2=>6->B
If B<>C
Then Locate 1,C," "
IfEnd
WhileEnd
D=1=>B-3->L
D=2=>B-3->M
Next
Goto0
Lbl 3
ClrText
Orange "Settings"
Locate 2,2,"Domain"
Locate 2,3,"Resolution"
Locate 2,4,"Pan"
Locate 2,5,"Perspective"
Locate 2,6,"Exit"
0->A
2->B
While A<>31
Locate 1,B,"=>"
B->C
Getkey->A
A=37 Or A=27=>Isz B
A=28 Or A=38=>Dsz B
B=7=>2->B
B=1=>6->B
If B<>C
Then Locate 1,C," "
IfEnd
WhileEnd
ClrText
If B=2
Then Orange "Domain"
Green "Now:"
Locate 5,2,P
"New"?->P
Abs P->P
P=0=>1->P
IfEnd
If B=3
Then Orange "Resolution"
Green "Now:"
Locate 5,2,Q
"New"?->Q
Abs Int Q->Q
Q<3=>3->Q
IfEnd
If B=4
Then Orange "X-Pan"
Green "Now:"
Locate 5,2,R
"New"?->R
ClrText
Orange "Y-Pan"
Green "Now:"
Locate 5,2,S
"New"?->S
ClrText
Orange "Z-Pan"
Green "Now:"
Locate 5,2,T
"New"?->T
IfEnd
If B=5
Then Orange "Perspective"
Green "Now:"
Locate 5,2,J
"New"?->J
J<0=>0->J
J>100=>100->J
IfEnd
B=6=>Goto0
Goto3
Lbl 4
Orange "Autozoom"
Green "Now:"
K=1=>Locate 5,2,"On"
K=0=>Locate 5,2,"Off"
1->O
1->N
0->F
"New"?->K
K<>0=>1->K
Goto0
Lbl 5
Orange "About"
Locate 3,3,"By: Islam Al Obeidi" (skriv ditt namn istället för mitt)
Locate 3,4,"NV1,Solna Gymnasium" (skriv vilken klass och skola du går i)
Locate 3,5,”2007/05/13” (här ska du skriva datumet)
Locate 6,7,"Version: 2.3"
0->A
While A=0
Getkey->A
WhileEnd
Goto0
Lbl 6
GridOff
AxesOff
ClrText
For 1->A To 5
" "
Next
Green " "
Locate 3,3,"One Moment Please!"
Rad
Identity Q->Mat V
Fill(0,Mat V
Mat V->Mat X
Mat X->Mat Y
Mat Y->Mat Z
Locate 15,6,"Matrix"
Locate 3,6,0
R-.5P->A
S-.5P->B
For 1->D To Q
For 1->C To Q
If C=Q
Then Locate 2,6," "
Locate 2,6,Int (100D/Q
IfEnd
A->Mat X[C,D
B->Mat Y[C,D
A->X
B->Y
f1->Z
If ImP Z<>0
Then 1->Mat V[C,D
Else If Z>.5P+T Or Z<(-).5P+T
Then 2->Mat V[C,D
Else Z->Mat Z[C,D
IfEnd
IfEnd
B+P(Q-1)->B
Next
A+P/(Q-1)->A
S-.5P->B
Next
Deg
Locate 2,6," 100 "
If G<>0
Then Locate 11,6,"Z Rotation"
Mat Xcos G-Mat Ysin G->Mat W
Mat Xsin G+Mat Ycos G->Mat Y
Mat W->Mat X
IfEnd
If H<>90
Then Locate 11,6," Tilt"
Mat Ycos (H-90)-Mat Zsin (H-90)->Mat W
Mat Ysin (H-90)+Mat Zcos (H-90)->Mat Z
Mat W->Mat Y
IfEnd
If I<>0
Then Locate 6,6,"Screen Rotation"
Mat Xcos I-Mat Ysin I->Mat W
Mat Xsin I+Mat Ycos I->Mat Y
Mat W->Mat X
IfEnd
K=0=>Cls
If J<>0
Then Deg
Rcos G-Ssin G->X
Rsin G+Scos G->W
Wcos (H-90)-Tsin (H-90)->Y
Wsin (H-90)+Tcos (H-90)->Z
Identity Q->Mat W
Fill(X,Mat W
Mat X-Mat W->Mat X
Fill(Y,Mat W
Mat Y-Mat W->Mat Y
Fill(Z,Mat W
Mat Z-Mat W->Mat Z
Locate 2,6,"0 Perspective"
For 1->U To Q
For 1->V To Q
Mat X[U,V]/(1-Mat Z[U,V]/((P/100)(100-J)+.5(3Px^2)))->Mat W[U,V
Mat Y[U,V]/(1-Mat Z[U,V]/((P/100)(100-J)+.5(3Px^2)))->Mat Y[U,V
If V=Q
Then Locate 2,6," "
Locate 2,6,Int (100U/Q
IfEnd
Next
Next
Locate 2,6," "
Mat W->Mat X
IfEnd
If K=1
Then 0->E
Locate 6,6," Autozoom"
For 1->U To Q
For 1->V To Q
If Mat V[U,V]=0
Then Mat X[U,V->F
If E=0
Then F->A:F->B:1->E
IfEnd
F>A=>F->A
F<B=>F->B
IfEnd
Next
Next
0->E
For 1->U To Q
For 1->V To Q
If Mat V[U,V]=0
Then Mat Y[U,V->F
If E=0
Then F->C:F->D:1->E
IfEnd
F>C=>F->C
F<D=>F->D
IfEnd
Next
Next
If A-B<2C-2D
Then ViewWindow ((A+B)/2-(C-D))-.28(C-D),((A+B)/2+(C-D))+.28(C-D),1,D-.14(C-D),C+.14(C-D),1
Else ViewWindow B-.14(A-B),A+.14(A-B),1,((C+D)/2-(A-B)/4)-.07(A-B),((C+D)/2+(A-B)/4)+.07(A-B),1
IfEnd
IfEnd
If L<>0
Then 1->D
For 1->A To Q
For 1->B To Q
Mat V[A,B]->C
C=0=>Green Plot Mat X[A,B],Mat Y[A,B
B=1=>1->D
If D=0 And C=0
Then L=1=>Green Line
L=2=>Line
L=3=>Orange Line
IfEnd
C->D
Next
Next
IfEnd
M=0 And L<>0=>Goto7
1->D
For 1->A To Q
For 1->B To Q
Mat V[B,A]->C
C=0=>Green Plot Mat X[B,A],Mat Y[B,A
B=1=>1->D
If D=0 And C=0
Then M=1=>Green Line
M=2=>Line
M=3=>Orange Line
IfEnd
C->D
Next
Next
Lbl 7
Identity 1->Mat Z
Mat Z->Mat W
AxesOn
1->U~V
While Mat V[U,V]<>0
Isz V
If V>Q
Then 1->V
Isz U
IfEnd
WhileEnd
Green Plot Mat X[U,V],Mat Y[U,V
Green Plot Mat X[U,V],Mat Y[U,V
Green Line
L<=1 Or M<=1=>1->C
L=2 Or M=2=>2->C
L=3 Or M=3=>3->C
Rad
Lbl 8
0->A
While A=0
Getkey->A
If Mat V[U,V]=0
Then For 1->B To 2
C=1=>Green PlotChg Mat X[U,V],Mat Y[U,V
C=2=>PlotChg Mat X[U,V],Mat Y[U,V
C=3=>Orange PlotChg Mat X[U,V],Mat Y[U,V
Next
IfEnd
WhileEnd
A=31 Or A=47=>Goto0
If A=79 Or A=69 Or A=59 Or A=49 Or A=39 Or A=29
Then ClrText
A=79=>StoPict 1
A=69=>StoPict 2
A=59=>StoPict 3
A=49=>StoPict 4
A=39=>StoPict 5
A=29=>StoPict 6
Locate 8,4,"Picture"
Locate 9,5,"Saved!"
For 1->A To 200
Next
IfEnd
If A=73 Or A=53 Or A=64 Or A=62 Or A=54 Or A=72 Or A=52 Or A=74
Then A=73=>G-30->G
A=53=>G+30->G
A=64=>H-30->H
A=...

...läs fortsättningen genom att logga in dig.

Medlemskap krävs

För att komma åt allt innehåll på Mimers Brunn måste du vara medlem och inloggad.
Kontot skapar du endast via facebook.

Källor för arbetet

Saknas

Kommentera arbetet: CFXYZ - 3D Grapher---Casio-program 2

 
Tack för din kommentar! Ladda om sidan för att se den. ×
Det verkar som att du glömde skriva något ×
Du måste vara inloggad för att kunna kommentera. ×
Något verkar ha gått fel med din kommentar, försök igen! ×

Kommentarer på arbetet

Inga kommentarer än :(

Liknande arbeten

Källhänvisning

Inactive member [2007-06-05]   CFXYZ - 3D Grapher---Casio-program 2
Mimers Brunn [Online]. https://mimersbrunn.se/article?id=8420 [2024-04-29]

Rapportera det här arbetet

Är det något du ogillar med arbetet? Rapportera
Vad är problemet?



Mimers Brunns personal granskar flaggade arbeten kontinuerligt för att upptäcka om något strider mot riktlinjerna för webbplatsen. Arbeten som inte följer riktlinjerna tas bort och upprepade överträdelser kan leda till att användarens konto avslutas.
Din rapportering har mottagits, tack så mycket. ×
Du måste vara inloggad för att kunna rapportera arbeten. ×
Något verkar ha gått fel med din rapportering, försök igen. ×
Det verkar som om du har glömt något att specificera ×
Du har redan rapporterat det här arbetet. Vi gör vårt bästa för att så snabbt som möjligt granska arbetet. ×