FAQ |
Calendar |
![]() |
|
Programming Share, tanya jawab, saling bantu antar programmer dengan berbagai macam bahasa pemrograman. |
![]() |
|
Thread Tools |
#1
|
|||
|
|||
![]() ![]() misi agan2 skalian.... niubie ni gan,,,, tapi ane bner2 tertarik banget ma coding... tolong dibantu donk gan... ni ada source code pascal, tapi pas di compile katanya error kyk bgini.. kompiler nya ane pake DEV PAS "can't find unit INITGRP" kira2 masalahnya dimana tu ya gan?? sekalian kalo bisa ane mnta tolong dicariin solusinya ampe bisa berhasil dijalankan.. ni dy ane lampirkan source code nya buat kepentingan penelitian gan... ![]() Spoiler for source code: uses Crt, Dos, Graph, Initgrp; Type Poligon = Array [1..6] of PointType; Mat = array [1..3,1..3] of Real; Vek = array [1..3] of Real; Const sSegilima : Poligon = ((X:200;Y:150),(X:250;Y:200),(X:300;Y:350),(X:200; Y:350),(X:200;Y:150)); Var Driver,Mode,Err:Integer; I : Integer; Segilima1,Segilima2,Segilima3 : Poligon; Vekhasil : Vek; Procedure Geser(Var Mt : Mat; trx, Try : Integer); Begin Mt[1,1] := 1; Mt[1,2] :=0; Mt[1,3] :=0; Mt[2,1] := 0; Mt[2,2] :=1; Mt[2,3] :=0; Mt[3,1] := Trx; Mt[3,2] :=Try; Mt[3,3] :=1; End; Procedure Skala(Var Ms : Mat; SX,SY : Real); Begin Ms[1,1] := SX; Ms[1,2] :=0; Ms[1,3] :=0; Ms[2,1] := 0; Ms[2,2] :=SY; Ms[2,3] :=0; Ms[3,1] := 0; Ms[3,2] :=0; Ms[3,3] :=1; End; Procedure Rotasi(Var Mr : Mat; Theta :Real); Begin Theta := Theta*pi/180; Mr[1,1] := Cos (Theta); Mr[1,2] := Sin (Theta); Mr[1,3] :=0; Mr[2,1] := -Sin (Theta); Mr[2,2] := Cos (Theta); Mr[2,3] :=0; Mr[3,1] := 0; Mr[3,2] :=0; Mr[3,3] :=1; End; Procedure Shear(Var Msh : Mat; Sh,Sg : Real); Begin Msh[1,1] := 1; Msh[1,2] :=Sg; Msh[1,3] :=0; Msh[2,1] := Sh; Msh[2,2] :=1; Msh[2,3] :=0; Msh[3,1] := 0; Msh[3,2] :=0; Msh[3,3] :=1; End. Procedure PerkalianVektor(Var VekH : Vek; VekA : Vek; MatA : Mat); Var I,J : Byte; Begin For I : = 1 To 3 Do Begin VekH[i] : = 0; For J : = 1 To 3 Do VekH[i] : = VekH[i] + VekA[J] * MatA[J,I]; End; End; Procedure ProsesGambar(Sh,Sg : Real); Var I,J : Byte; Vekhasil,VekTitik : Vek; MatTrans : Mat; Begin Shear(MatTrans, Sh,Sg); For I : = 1 To 6 Do Begin VekTitik[1] := Segilima[i].X; VekTitik[2] := Segilima[i].Y; VekTitik[3] := 1; PerkalianVektor(Vekhasil, VekTitik, MatTrans); Segilima2[i].X := Round(VekHasil[1]); Segilima2[i].Y := Round(VekHasil[2]); VekTitik[1] := Segilima[i].X; VekTitik[2] := Segilima[i].Y; VekTitik[3] := 1; PerkalianVektor(Vekhasil, VekTitik, MatTrans); Segilima3[i].X := Round(VekHasil[1]); Segilima3[i].Y := Round(VekHasil[2]); End; End; Begin Driver := Detect; Mode := VgMed; SiapkanGrafik(Driver,Mode); SetTextSytle(TriplexFont,HorizDir,4); SetTextJustify(CenterText,CenterText); OutTextXY(GetMaxX Div 2,50,'Contoh Transformasi Sederhana'); For I := 1 To 6 Do Begin Segilima[i].X := Segilima[i].X + 100; Segilima[i].Y := Segilima[i].Y; End; SetTextStyle(DefaultFont,HorizDir,1); SetTextJustify(LeftText,CenterText); OutTextXY(260,380,'Gambar Asli'); DrawPoly(6,Segilima); DrawPoly(6,Segilima1); ProsesGambar(0.5,0); DrawPoly(6,Segilima2); DrawPoly(6,Segilima3); OutTextXY(425,380,'Shear Dengan X Positif'); ProsesGambar(-0.5,5); DrawPoly(6,Segilima2); DrawPoly(6,Segilima3); OutTextXY(15,380,'Shear Dengan X Negatif'); Line(50,100,75,100); Line(50,100,50,150); OutTextXY(80,100,'X+'); OutTextXY(50,150,'Y+'); End. o iya... buat yang Pertamaxx tolong jawaban yang berbobot yahh!!! ![]() Terkait:
|
![]() |
|
|