Programme de dessin de fonction avec perspective lineaire

Le titre résume bien ce que fait mon programme. Il prend les fonctions
entrées et après calcul, permet de les affiches en graphique en tenant compte d'effet de perspective linéaire.
Symbolisme:
ü = sto ou -
÷ = =
ð = racine carré
Variable:
- fonction normal
Y = Y1
Y‚ = Y2
Yƒ = Y3
Y„ = Y4
Y… = Y5
Y† = Y6
Y‡ = Y7
Yˆ = Y8
Y‰ = Y9
Y€ = Y0
- parametrique
YÔ = Y1T
Y‚Ô = Y2T
YƒÔ = Y3T
...
Y€Ô = Y0T
Program: PLINEAIR
Lbl 1
ClrHome
Menu("MENU","VECT ET REF",2,"OPE cos()",3,"FONCT NORM",4,"FONCT
MATR",5,"PT PAR PT",6)
Lbl 4
ClrHome
Menu("FONCT NORM","ASSIGN REF",4A,"ENT FONCT",4B,"CALC",4C,"MENU",1)
Lbl 5
ClrHome
Menu("FONCT MATR","ENT FONCT",5A,"CALC",5B,"MENU",1)
Lbl 6
ClrHome
Menu("PT PAR PT","DONNEES",6A,"CALC",6B,"MENU",1)
Lbl 2
ClrHome
Disp "[A]={ORIGINES}","[B]={Á REF}"
Input "NB DE REF (A)",A
{1+A,3}üdim([A])
{2+3A,3}üdim([B])
{2+3A,3}üdim([C])
Prompt ([A],[B])
Goto 1
Lbl 3
ClrHome
1üB
While B÷2+3A
1üC
While C÷3
cos([B](B,C))ü[C](B,C)
C+1üC
End
B+1üB
End
[[0,[C](1,1)+[A](1,1),0][0,[C](1,2)+[A](1,2),0][0,[C](1,3)+[A](1,3),0]]ü[D]
[[0,0,[C](2,1)+[A](1,1)][0,0,[C](2,2)+[A](1,2)][0,0,[C](2,3)+[A](1,3)]]ü[E]
Goto 1
Lbl 4A
ClrHome
Input "REF DE XÔ (D)",D
Input "REF DE X‚Ô (E)",E
Input "REF DE XƒÔ (F)",F
Input "REF DE X„Ô (G)",G
Input "REF DE X…Ô (H)",H
Goto 4
Lbl 4B
ClrHome
Input "E1(T)=Y=",Y
Input "F1(T)=Y‚=",Y‚
Input "E2(T)=Yƒ=",Yƒ
Input "F2(T)=Y„=",Y„
Input "E3(T)=Y…=",Y…
Input "F3(T)=Y†=",Y†
Input "E4(T)=Y‡=",Y‡
Input "F4(T)=Yˆ=",Yˆ
Input "E5(T)=Y‰=",Y‰
Input "F5(T)=Y€=",Y€
Goto 4
Lbl 4C
ClrHome
"det(expr(Str1)+[D])/det(expr(Str1))"üXÔ
"det(expr(Str1)+[D])/det(expr(Str1))"üYÔ
"det(expr(Str2)+[D])/det(expr(Str2))"üX‚Ô
"det(expr(Str2)+[E])/det(expr(Str2))"üY‚Ô
"det(expr(Str3)+[D])/det(expr(Str3))"üXƒÔ
"det(expr(Str3)+[E])/det(expr(Str3))"üYƒÔ
"det(expr(Str4)+[D])/det(expr(Str4))"üX„Ô
"det(expr(Str4)+[E])/det(expr(Str4))"üY„Ô
"det(expr(Str5)+[D])/det(expr(Str5))"üX…Ô
"det(expr(Str5)+[E])/det(expr(Str5))"üY…Ô
"[[[A](1+D,1)+T[C](3D,1)+Y[C](3D+1,1)+Y‚[C](3D+2,1),ú[C](1,1),ú[C](2,1)][[A](1+D,2)+T[C](3D,2)+Y[C](3D+1,2)+Y‚[C](3D+2,2),ú[C](1,2),ú[C](2,2)][[A](1+D,3)+T[C](3D,3)+Y[C](3D+1,3)+Y‚[C](3D+2,3),ú[C](1,3),ú[C](2,3)]]"üStr1
"[[[A](1+E,1)+T[C](3E,1)+Yƒ[C](3E+1,1)+Y„[C](3E+2,1),ú[C](1,1),ú[C](2,1)][[A](1+E,2)+T[C](3E,2)+Yƒ[C](3E+1,2)+Y„[C](3E+2,2),ú[C](1,2),ú[C](2,2)][[A](1+E,3)+T[C](3E,3)+Yƒ[C](3E+1,3)+Y„[C](3E+2,3),ú[C](1,3),ú[C](2,3)]]"üStr2
"[[[A](1+F,1)+T[C](3F,1)+Y…[C](3F+1,1)+Y†[C](3F+2,1),ú[C](1,1),ú[C](2,1)][[A](1+F,2)+T[C](3F,2)+Y…[C](3F+1,2)+Y†[C](3F+2,2),ú[C](1,2),ú[C](2,2)][[A](1+F,3)+T[C](3F,3)+Y…[C](3F+1,3)+Y†[C](3F+2,3),ú[C](1,3),ú[C](2,3)]]"üStr3
"[[[A](1+G,1)+T[C](3G,1)+Y‡[C](3G+1,1)+Yˆ[C](3G+2,1),ú[C](1,1),ú[C](2,1)][[A](1+G,2)+T[C](3G,2)+Y‡[C](3G+1,2)+Yˆ[C](3G+2,2),ú[C](1,2),ú[C](2,2)][[A](1+G,3)+T[C](3G,3)+Y‡[C](3G+1,3)+Yˆ[C](3G+2,3),ú[C](1,3),ú[C](2,3)]]"üStr4
"[[[A](1+H,1)+T[C](3H,1)+Y‰[C](3H+1,1)+Y€[C](3H+2,1),ú[C](1,1),ú[C](2,1)][[A](1+H,2)+T[C](3H,2)+Y‰[C](3H+1,2)+Y€[C](3H+2,2),ú[C](1,2),ú[C](2,2)][[A](1+H,3)+T[C](3H,3)+Y‰[C](3H+1,3)+Y€[C](3H+2,3),ú[C](1,3),ú[C](2,3)]]"üStr5
Goto 4
Lbl 5A
ClrHome
Disp "[F]=MATR VAL","FONCT1 C(1,2,3)","FONCT2 C(4,5,6)","FONCT3
C(7,8,9)","Ans1 C(10,11)","Ans2 C(12,13)","Ans3 C(14,15)"
Pause
Input "REF F1 (I)",I
Input "REF F2 (J)",J
Input "REF F3 (K)",K
Disp "COMPLETER FUNCT.","DANS PLINFUNC"
Pause
Goto 5
Lbl 5B
ClrHome
"[[[A](I+1,1)+[F](L,1)[C](3I,1)+[F](L,2)[C](3I+1,1)+[F](L,3)[C](3I+2,1),ú[C](1,1),ú[C](2,1)][[A](I+1,2)+[F](L,1)[C](3I,2)+[F](L,2)[C](3I+1,2)+[F](L,3)[C](3I+2,2),ú[C](1,2),ú[C](2,2)][[A](I+1,3)+[F](L,1)[C](3I,3)+[F](L,2)[C](3I+1,3)+[F](L,3)[C](3I+2,3),ú[C](1,3),ú[C](2,3)]]"üStr6
"[[[A](J+1,1)+[F](M,4)[C](3J,1)+[F](M,5)[C](3J+1,1)+[F](M,6)[C](3J+2,1),ú[C](1,1),ú[C](2,1)][[A](J+1,2)+[F](M,4)[C](3J,2)+[F](M,5)[C](3J+1,2)+[F](M,6)[C](3J+2,2),ú[C](1,2),ú[C](2,2)][[A](J+1,3)+[F](M,4)[C](3J,3)+[F](M,5)[C](3J+1,3)+[F](M,6)[C](3J+2,3),ú[C](1,3),ú[C](2,3)]]"üStr7
"[[[A](K+1,1)+[F](N,7)[C](3K,1)+[F](N,8)[C](3K+1,1)+[F](N,9)[C](3K+2,1),ú[C](1,1),ú[C](2,1)][[A](K+1,2)+[F](N,7)[C](3K,2)+[F](N,8)[C](3K+1,2)+[F](N,9)[C](3K+2,2),ú[C](1,2),ú[C](2,2)][[A](K+1,3)+[F](N,7)[C](3K,3)+[F](N,8)[C](3K+1,3)+[F](N,9)[C](3K+2,3),ú[C](1,3),ú[C](2,3)]]"üStr8
prgmPLINFUNC
LüO
MüP
NüQ
For(L,1,O)
det(expr(Str6)+[D])/det(expr(Str6))ü[F](L,10)
det(expr(Str6)+[E])/det(expr(Str6))ü[F](L,11)
End
For(M,1,P)
det(expr(Str7)+[D])/det(expr(Str7))ü[F](M,12)
det(expr(Str7)+[E])/det(expr(Str7))ü[F](M,13)
End
For(N,1,Q)
det(expr(Str8)+[D])/det(expr(Str8))ü[F](N,14)
det(expr(Str8)+[E])/det(expr(Str8))ü[F](N,15)
End
{T-1,15}üdim([F])
Goto 5
Lbl 6A
ClrHome
Input "NB DE PTS (R)",R
{R,5}üdim([G])
Disp "[G]=MATR VAL","PT(REEL)","- C(1,2,3)","PT(PLIN)","- C(4,5)"
Pause
Goto 6
Lbl 6B
ClrHome
For(S,1,R)
[[[G](S,1),ú[C](1,1),ú[C](2,1)][[G](S,2),ú[C](1,2),ú[C](2,2)][[G](S,3),ú[C](1,3),ú[C](2,3)]]ü[H]
det([H]+[D])/det([H])ü[G](S,4)
det([H]+[E])/det([H])ü[G](S,5)
End
Goto 6
entrées et après calcul, permet de les affiches en graphique en tenant compte d'effet de perspective linéaire.
Symbolisme:
ü = sto ou -
÷ = =
ð = racine carré
Variable:
- fonction normal
Y = Y1
Y‚ = Y2
Yƒ = Y3
Y„ = Y4
Y… = Y5
Y† = Y6
Y‡ = Y7
Yˆ = Y8
Y‰ = Y9
Y€ = Y0
- parametrique
YÔ = Y1T
Y‚Ô = Y2T
YƒÔ = Y3T
...
Y€Ô = Y0T
Program: PLINEAIR
Lbl 1
ClrHome
Menu("MENU","VECT ET REF",2,"OPE cos()",3,"FONCT NORM",4,"FONCT
MATR",5,"PT PAR PT",6)
Lbl 4
ClrHome
Menu("FONCT NORM","ASSIGN REF",4A,"ENT FONCT",4B,"CALC",4C,"MENU",1)
Lbl 5
ClrHome
Menu("FONCT MATR","ENT FONCT",5A,"CALC",5B,"MENU",1)
Lbl 6
ClrHome
Menu("PT PAR PT","DONNEES",6A,"CALC",6B,"MENU",1)
Lbl 2
ClrHome
Disp "[A]={ORIGINES}","[B]={Á REF}"
Input "NB DE REF (A)",A
{1+A,3}üdim([A])
{2+3A,3}üdim([B])
{2+3A,3}üdim([C])
Prompt ([A],[B])
Goto 1
Lbl 3
ClrHome
1üB
While B÷2+3A
1üC
While C÷3
cos([B](B,C))ü[C](B,C)
C+1üC
End
B+1üB
End
[[0,[C](1,1)+[A](1,1),0][0,[C](1,2)+[A](1,2),0][0,[C](1,3)+[A](1,3),0]]ü[D]
[[0,0,[C](2,1)+[A](1,1)][0,0,[C](2,2)+[A](1,2)][0,0,[C](2,3)+[A](1,3)]]ü[E]
Goto 1
Lbl 4A
ClrHome
Input "REF DE XÔ (D)",D
Input "REF DE X‚Ô (E)",E
Input "REF DE XƒÔ (F)",F
Input "REF DE X„Ô (G)",G
Input "REF DE X…Ô (H)",H
Goto 4
Lbl 4B
ClrHome
Input "E1(T)=Y=",Y
Input "F1(T)=Y‚=",Y‚
Input "E2(T)=Yƒ=",Yƒ
Input "F2(T)=Y„=",Y„
Input "E3(T)=Y…=",Y…
Input "F3(T)=Y†=",Y†
Input "E4(T)=Y‡=",Y‡
Input "F4(T)=Yˆ=",Yˆ
Input "E5(T)=Y‰=",Y‰
Input "F5(T)=Y€=",Y€
Goto 4
Lbl 4C
ClrHome
"det(expr(Str1)+[D])/det(expr(Str1))"üXÔ
"det(expr(Str1)+[D])/det(expr(Str1))"üYÔ
"det(expr(Str2)+[D])/det(expr(Str2))"üX‚Ô
"det(expr(Str2)+[E])/det(expr(Str2))"üY‚Ô
"det(expr(Str3)+[D])/det(expr(Str3))"üXƒÔ
"det(expr(Str3)+[E])/det(expr(Str3))"üYƒÔ
"det(expr(Str4)+[D])/det(expr(Str4))"üX„Ô
"det(expr(Str4)+[E])/det(expr(Str4))"üY„Ô
"det(expr(Str5)+[D])/det(expr(Str5))"üX…Ô
"det(expr(Str5)+[E])/det(expr(Str5))"üY…Ô
"[[[A](1+D,1)+T[C](3D,1)+Y[C](3D+1,1)+Y‚[C](3D+2,1),ú[C](1,1),ú[C](2,1)][[A](1+D,2)+T[C](3D,2)+Y[C](3D+1,2)+Y‚[C](3D+2,2),ú[C](1,2),ú[C](2,2)][[A](1+D,3)+T[C](3D,3)+Y[C](3D+1,3)+Y‚[C](3D+2,3),ú[C](1,3),ú[C](2,3)]]"üStr1
"[[[A](1+E,1)+T[C](3E,1)+Yƒ[C](3E+1,1)+Y„[C](3E+2,1),ú[C](1,1),ú[C](2,1)][[A](1+E,2)+T[C](3E,2)+Yƒ[C](3E+1,2)+Y„[C](3E+2,2),ú[C](1,2),ú[C](2,2)][[A](1+E,3)+T[C](3E,3)+Yƒ[C](3E+1,3)+Y„[C](3E+2,3),ú[C](1,3),ú[C](2,3)]]"üStr2
"[[[A](1+F,1)+T[C](3F,1)+Y…[C](3F+1,1)+Y†[C](3F+2,1),ú[C](1,1),ú[C](2,1)][[A](1+F,2)+T[C](3F,2)+Y…[C](3F+1,2)+Y†[C](3F+2,2),ú[C](1,2),ú[C](2,2)][[A](1+F,3)+T[C](3F,3)+Y…[C](3F+1,3)+Y†[C](3F+2,3),ú[C](1,3),ú[C](2,3)]]"üStr3
"[[[A](1+G,1)+T[C](3G,1)+Y‡[C](3G+1,1)+Yˆ[C](3G+2,1),ú[C](1,1),ú[C](2,1)][[A](1+G,2)+T[C](3G,2)+Y‡[C](3G+1,2)+Yˆ[C](3G+2,2),ú[C](1,2),ú[C](2,2)][[A](1+G,3)+T[C](3G,3)+Y‡[C](3G+1,3)+Yˆ[C](3G+2,3),ú[C](1,3),ú[C](2,3)]]"üStr4
"[[[A](1+H,1)+T[C](3H,1)+Y‰[C](3H+1,1)+Y€[C](3H+2,1),ú[C](1,1),ú[C](2,1)][[A](1+H,2)+T[C](3H,2)+Y‰[C](3H+1,2)+Y€[C](3H+2,2),ú[C](1,2),ú[C](2,2)][[A](1+H,3)+T[C](3H,3)+Y‰[C](3H+1,3)+Y€[C](3H+2,3),ú[C](1,3),ú[C](2,3)]]"üStr5
Goto 4
Lbl 5A
ClrHome
Disp "[F]=MATR VAL","FONCT1 C(1,2,3)","FONCT2 C(4,5,6)","FONCT3
C(7,8,9)","Ans1 C(10,11)","Ans2 C(12,13)","Ans3 C(14,15)"
Pause
Input "REF F1 (I)",I
Input "REF F2 (J)",J
Input "REF F3 (K)",K
Disp "COMPLETER FUNCT.","DANS PLINFUNC"
Pause
Goto 5
Lbl 5B
ClrHome
"[[[A](I+1,1)+[F](L,1)[C](3I,1)+[F](L,2)[C](3I+1,1)+[F](L,3)[C](3I+2,1),ú[C](1,1),ú[C](2,1)][[A](I+1,2)+[F](L,1)[C](3I,2)+[F](L,2)[C](3I+1,2)+[F](L,3)[C](3I+2,2),ú[C](1,2),ú[C](2,2)][[A](I+1,3)+[F](L,1)[C](3I,3)+[F](L,2)[C](3I+1,3)+[F](L,3)[C](3I+2,3),ú[C](1,3),ú[C](2,3)]]"üStr6
"[[[A](J+1,1)+[F](M,4)[C](3J,1)+[F](M,5)[C](3J+1,1)+[F](M,6)[C](3J+2,1),ú[C](1,1),ú[C](2,1)][[A](J+1,2)+[F](M,4)[C](3J,2)+[F](M,5)[C](3J+1,2)+[F](M,6)[C](3J+2,2),ú[C](1,2),ú[C](2,2)][[A](J+1,3)+[F](M,4)[C](3J,3)+[F](M,5)[C](3J+1,3)+[F](M,6)[C](3J+2,3),ú[C](1,3),ú[C](2,3)]]"üStr7
"[[[A](K+1,1)+[F](N,7)[C](3K,1)+[F](N,8)[C](3K+1,1)+[F](N,9)[C](3K+2,1),ú[C](1,1),ú[C](2,1)][[A](K+1,2)+[F](N,7)[C](3K,2)+[F](N,8)[C](3K+1,2)+[F](N,9)[C](3K+2,2),ú[C](1,2),ú[C](2,2)][[A](K+1,3)+[F](N,7)[C](3K,3)+[F](N,8)[C](3K+1,3)+[F](N,9)[C](3K+2,3),ú[C](1,3),ú[C](2,3)]]"üStr8
prgmPLINFUNC
LüO
MüP
NüQ
For(L,1,O)
det(expr(Str6)+[D])/det(expr(Str6))ü[F](L,10)
det(expr(Str6)+[E])/det(expr(Str6))ü[F](L,11)
End
For(M,1,P)
det(expr(Str7)+[D])/det(expr(Str7))ü[F](M,12)
det(expr(Str7)+[E])/det(expr(Str7))ü[F](M,13)
End
For(N,1,Q)
det(expr(Str8)+[D])/det(expr(Str8))ü[F](N,14)
det(expr(Str8)+[E])/det(expr(Str8))ü[F](N,15)
End
{T-1,15}üdim([F])
Goto 5
Lbl 6A
ClrHome
Input "NB DE PTS (R)",R
{R,5}üdim([G])
Disp "[G]=MATR VAL","PT(REEL)","- C(1,2,3)","PT(PLIN)","- C(4,5)"
Pause
Goto 6
Lbl 6B
ClrHome
For(S,1,R)
[[[G](S,1),ú[C](1,1),ú[C](2,1)][[G](S,2),ú[C](1,2),ú[C](2,2)][[G](S,3),ú[C](1,3),ú[C](2,3)]]ü[H]
det([H]+[D])/det([H])ü[G](S,4)
det([H]+[E])/det([H])ü[G](S,5)
End
Goto 6