Skip to content

Instantly share code, notes, and snippets.

@nbingham1
Created October 5, 2015 00:03
Show Gist options
  • Save nbingham1/88b982cf06cfee540917 to your computer and use it in GitHub Desktop.
Save nbingham1/88b982cf06cfee540917 to your computer and use it in GitHub Desktop.
A 3D function grapher for the TI-84
-10->N
1000->F
ZStandard
ZSquare
5->C
a+bi
Lbl 1
ClrHome
Menu("GRAPH 3D","GRAPH FUNCTION",2,"WINDOW",3,"ROTATE",4,"MATH",5,"QUIT",6)
Lbl 2
Input "INPUT FUNCTION:",Str1
String>Equ(Str1, Y1)
FnOff 1
AxesOff
Lbl 8
ClrDraw
For(P,L,R,C)
For(O,L,R,C)
If not(O=R)
Then
P->A
O+C->S
prgmLINE3D
End
If not(P=R)
Then
P+C->A
O->S
prgmLINE3D
End
End
End
0->G
While not(G=105)
getKey->G
If G=24
Then
J-pi/4->J
Goto 8
End
If G=26
Then
J+pi/4->J
Goto 8
End
If G=34
Then
I-pi/4->I
Goto 8
End
If G=25
Then
I+pi/4->I
Goto 8
End
End
Goto 1
Lbl 3
Input "RIGHT:",R
Input "LEFT:",L
Input "TOP:",T
Input "BOTTOM:",B
Input "RESOLUTION:",C
L->Xmin
R->Xmax
B->Ymin
T->Ymax
ZSquare
Goto 1
Lbl 4
Input "X:",I
Input "Y:",J
Input "Z:",K
piI/180->I
piJ/180->J
piK/180->K
Goto 1
Lbl 5
Menu("MATH","BACK",7)
Lbl 7
Goto 1
Lbl 6
Real
A->Z
S->M
If Z=0
-0.000001->Z
If M=0
-0.000001->M
Y1(M)->G
Z->H
If not(real(M)) or not(real(G)) or not(real(H))
Return
prgmROT3D
2NE/(R-L)->M
2NQ/(T-B)->G
-(F+N)W/(F-N)-2FN/(F-N)->H
If H<=0
Return
-10M/H->U
-10G/H->V
P->Z
O->M
If Z=0
0.000001->Z
If M=0
0.000001->M
Y1(M)->G
Z->H
If not(real(M)) or not(real(G)) or not(real(H))
Return
prgmRot3D
2NE/(R-L)->M
2NQ/(T-B)->G
-(F+N)W/(F-N)-2FN/(F-N)->H
if H<=0
Return
-10M/H->X
-10G/H->Y
Line(X,Y,U,V)
cos(K)(Mcos(J)+sin(J)(Gcos(I)-Hsin(I)))-sin(K)(Gcos(I)-Hsin(I))->E
sin(K)(Mcos(J)+sin(J)(Gcos(I)-Hsin(I)))+cos(K)(Gcos(I)_Hsin(I))->Q
-Msin(J)+cos(J)(Gsin(I)+Hcos(I))->W
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment