2.2 Metode Trigonometri
a. Lingkaran Dengan Pusat 0,0 dan Radius r.
Persamaan lingkaran dengan pusat 0,0 dalam bentuk trigonometri:
x = r cos α dan y = r sin α
Bentuk simetris sama dengan lingkaran polinom.
Batas scan dapat dipilih mulai dari sudut = 0 sampai 45 derajad
.
Agar diperoleh grafik yang halus dan kontinyu, maka kenaikkan nilai sudut harus kecil 1, misalnya 0,5.
Perintah for to do tidak cocok. Dapat menggunakan perintah repeat – until atau while –do.
2.2 Metode Trigonometri
a. Lingkaran Dengan Pusat 0,0 dan Radius r.
Persamaan lingkaran dengan pusat 0,0 dalam bentuk trigonometri:
x = r cos α dan y = r sin α
Bentuk simetris sama dengan lingkaran polinom.
Batas scan dapat dipilih mulai dari sudut = 0 sampai 45 derajad
.
Agar diperoleh grafik yang halus dan kontinyu, maka kenaikkan nilai sudut harus kecil 1, misalnya 0,5.
Perintah for to do tidak cocok. Dapat menggunakan perintah repeat – until atau while –do.
30102012 Komputer Grafik Widjianto versi
2012
procedure LingkTrigonoPusat00Warna8; begin
r := StrToInteR.Text;
sudut := 0;
Repeat
radian := sudut180 3.14; x := r cosradian;
y := r sinradian;
Canvas.Pixels[truncx0 +x, truncy0-y] := clRed; Canvas.Pixels[truncx0 +x, truncy0+y] := clBlue;
Canvas.Pixels[truncx0 -x, truncy0-y] := clPurple; Canvas.Pixels[truncx0 -x, truncy0+y] := clNavy;
Canvas.Pixels[truncx0 +y, truncy0-x] := clBlack; Canvas.Pixels[truncx0 +y, truncy0+x] := clGreen;
Canvas.Pixels[truncx0 -y, truncy0-x] := clYellow; Canvas.Pixels[truncx0 -y, truncy0+x] := clTeal;
sudut := sudut + 0.5; Until sudut = 45;
end;
0,0 y, x
x, -y -x, y
y, -x
-y, -x -y, x
-x, -y
procedure LingkTrigonoPusat00Warna8; begin
r := StrToInteR.Text;
sudut := 0;
Repeat
radian := sudut180 3.14; x := r cosradian;
y := r sinradian;
Canvas.Pixels[truncx0 +x, truncy0-y] := clRed; Canvas.Pixels[truncx0 +x, truncy0+y] := clBlue;
Canvas.Pixels[truncx0 -x, truncy0-y] := clPurple; Canvas.Pixels[truncx0 -x, truncy0+y] := clNavy;
Canvas.Pixels[truncx0 +y, truncy0-x] := clBlack; Canvas.Pixels[truncx0 +y, truncy0+x] := clGreen;
Canvas.Pixels[truncx0 -y, truncy0-x] := clYellow; Canvas.Pixels[truncx0 -y, truncy0+x] := clTeal;
sudut := sudut + 0.5; Until sudut = 45;
end; Program
30102012 Komputer Grafik Widjianto versi
2012
Mengatur warna yang berdekatan dibuat sama.
procedure LingkTrigonoPusatABWarna4; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; sudut:= 0;
Repeat radian := sudut180 3.14;
x := r Cosradian;
y := r sinradian; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clRed;
Canvas.Pixels[truncx0 +x+a, truncy0--y+b] := clBlue; Canvas.Pixels[truncx0 +-x+a, truncy0-y+b] := clBlue;
Canvas.Pixels[truncx0 +-x+a, truncy0--y+b] := clRed; Canvas.Pixels[truncx0 +y+a, truncy0-x+b] := clBlack;
Canvas.Pixels[truncx0 +y+a, truncy0--x+b] := clGreen; Canvas.Pixels[truncx0 +-y+a, truncy0-x+b] := clGreen;
Canvas.Pixels[truncx0 +-y+a, truncy0--x+b] := clBlack; sudut := sudut + 0.5;
Until sudut = 45; end;
a,b x+a, y+b
-x+a, y+b
y+a, -x+b
-y+a, -x+b
-x+a, -y+b x+a, -y+b
-y+a, x+b y+a, x+b
procedure LingkTrigonoPusatABWarna4; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; sudut:= 0;
Repeat radian := sudut180 3.14;
x := r Cosradian;
y := r sinradian; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clRed;
Canvas.Pixels[truncx0 +x+a, truncy0--y+b] := clBlue; Canvas.Pixels[truncx0 +-x+a, truncy0-y+b] := clBlue;
Canvas.Pixels[truncx0 +-x+a, truncy0--y+b] := clRed; Canvas.Pixels[truncx0 +y+a, truncy0-x+b] := clBlack;
Canvas.Pixels[truncx0 +y+a, truncy0--x+b] := clGreen; Canvas.Pixels[truncx0 +-y+a, truncy0-x+b] := clGreen;
Canvas.Pixels[truncx0 +-y+a, truncy0--x+b] := clBlack; sudut := sudut + 0.5;
Until sudut = 45; end;
Program
30102012 Komputer Grafik Widjianto versi
2012
Mengatur warna yang berdekatan dibuat sama.
procedure LingkTrigonoPusatABWarna1; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; sudut:= 0;
Repeat radian := sudut180 3.14;
x := r Cosradian;
y := r sinradian; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clRed;
sudut := sudut + 0.5;
Until sudut = 360; end;
a,b x+a, y+b
-x+a, y+b
y+a, -x+b
-y+a, -x+b
-x+a, -y+b x+a, -y+b
-y+a, x+b y+a, x+b
procedure LingkTrigonoPusatABWarna1; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; sudut:= 0;
Repeat radian := sudut180 3.14;
x := r Cosradian;
y := r sinradian; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clRed;
sudut := sudut + 0.5;
Until sudut = 360; end;
Program
30102012 Komputer Grafik Widjianto versi
2012
3. Menggambar Ellips
Menggambar ellips dengan pixel dapat menghasilkan ellips dengan 4 warna, 2 warna atau 1 warna pilihan.
Ellips mempunyai 4 simitris putar, ellips dapat dibagi menjadi 4 bagian simetris sama dan satu bagian tersebut dapat diputar sehingga
membentuk sebuah ellips penuh.
Menggambar sebuah ellips cukup menscan 14 bagian, sedangkan bagian lainnya dicopykan dari bagian tersebut
3. Menggambar Ellips
Menggambar ellips dengan pixel dapat menghasilkan ellips dengan 4 warna, 2 warna atau 1 warna pilihan.
Ellips mempunyai 4 simitris putar, ellips dapat dibagi menjadi 4 bagian simetris sama dan satu bagian tersebut dapat diputar sehingga
membentuk sebuah ellips penuh.
Menggambar sebuah ellips cukup menscan 14 bagian, sedangkan bagian lainnya dicopykan dari bagian tersebut
Keuntungan cara ini adalah kita dapat memilih warna yang berbeda dari tiap bagian tersebut.
Untuk menggambar ellips dapat digunakan 2 metode, yaitu
metode polinom dan metode trigonometri.
30102012 Komputer Grafik Widjianto versi
2012
a. Ellips Dengan Pusat 0,0 dgn Sumbu-sumbu h dan k.
Persamaannya x
2
+ y
2
= 1 h
2
k
2
Dalam bentuk eksplisit dapat ditulis: y = k√ 1 – x h
2
.
x,y -x,y
0,0
Sebuah titik x,y menghasilkan 3 titik pada bagian simetris lainnya,
yaitu x,-y, -x,y dan -x,-y.
x,-y -x,-y
Sebuah titik x,y menghasilkan 3 titik pada bagian simetris lainnya,
yaitu x,-y, -x,y dan -x,-y.
Batas scan diambil sepanjang sumbu datar dari x = 0 sampai x =h. Kenaikkan nilai x harus 1, misalnya 0,1.
Jangan pakai for to do Gunakan perintah repeat – until atau while –do.
30102012 Komputer Grafik Widjianto versi
2012
procedure EllipsPolinomPusat00Warna4; begin
h := StrToInteH.Text; k := StrToInteK.Text;
x := 0; Repeat
y := ksqrt1 - sqrxh; Canvas.Pixels[truncx0 +x, truncy0-y] := clRed;
Canvas.Pixels[truncx0 +x, truncy0+y] := clBlue; Canvas.Pixels[truncx0 -x, truncy0-y] := clYellow;
Canvas.Pixels[truncx0 -x, truncy0+y] := clGreen; x := x + 0.5
Until x = h; end;
procedure EllipsPolinomPusat00Warna4; begin
h := StrToInteH.Text; k := StrToInteK.Text;
x := 0; Repeat
y := ksqrt1 - sqrxh; Canvas.Pixels[truncx0 +x, truncy0-y] := clRed;
Canvas.Pixels[truncx0 +x, truncy0+y] := clBlue; Canvas.Pixels[truncx0 -x, truncy0-y] := clYellow;
Canvas.Pixels[truncx0 -x, truncy0+y] := clGreen; x := x + 0.5
Until x = h; end;
0,0 x,y
x,-y -x,-y
-x,y
Program
30102012 Komputer Grafik Widjianto versi
2012
b. Ellips Dengan Pusat a,b dan Sumbu-sumbu h dan k.
Persamaannya:
x – a
2
+ y – b
2
= 1 h
2
k
2
Untuk membentuk persamaan ini dapat dilakukan dengan menggeser titik pusat 0,0 ke a,b dan koordinat titik-titik lainnya
berubah sebagai berikut ini.
b. Ellips Dengan Pusat a,b dan Sumbu-sumbu h dan k.
Persamaannya:
x – a
2
+ y – b
2
= 1 h
2
k
2
Untuk membentuk persamaan ini dapat dilakukan dengan menggeser titik pusat 0,0 ke a,b dan koordinat titik-titik lainnya
berubah sebagai berikut ini.
x+a,y+b -x+a,y+b
x+a,-y+b -x+a,-y+b
a,b
Batas scan dapat dipilih mulai dari x = 0 sampai x = h
30102012 Komputer Grafik Widjianto versi
2012
procedure EllipsPolinomPusatABWarna4; begin
h := StrToInteH.Text; k := StrToInteK.Text;
a := StrToInteA.Text; b := StrToInteB.Text;
x := 0; Repeat
y := ksqrt1 - sqrxh; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clRed;
Canvas.Pixels[truncx0 +x+a, truncy0--y+b] := clBlue; Canvas.Pixels[truncx0 - x+a, truncy0-y+b] := clYellow;
Canvas.Pixels[truncx0 - x+a, truncy0--y+b] := clGreen; x := x + 0.5;
Until x = h; end;
a,b x+a,y+b
x+a,-y+b -x+a-y+b
-x+a,y+b
procedure EllipsPolinomPusatABWarna4; begin
h := StrToInteH.Text; k := StrToInteK.Text;
a := StrToInteA.Text; b := StrToInteB.Text;
x := 0; Repeat
y := ksqrt1 - sqrxh; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clRed;
Canvas.Pixels[truncx0 +x+a, truncy0--y+b] := clBlue; Canvas.Pixels[truncx0 - x+a, truncy0-y+b] := clYellow;
Canvas.Pixels[truncx0 - x+a, truncy0--y+b] := clGreen; x := x + 0.5;
Until x = h; end;
Program
30102012 Komputer Grafik Widjianto versi
2012
Persamaan ellips dengan pusat 0,0 dgn sumbu-sumbu h k adalah:
x = h cos α dan y = k sin α
Batas scan dapat dipilih mulai dari sudut = 0 sampai 90 derajad
.
Kenaikkan nilai sudut harus kecil 1, misalnya 0,1.
Tidak dapat menggunakan perintah for to do
Menggunakan perintah repeat – until atau while –do.
Persamaan ellips dengan pusat 0,0 dgn sumbu-sumbu h k adalah:
x = h cos α dan y = k sin α
Batas scan dapat dipilih mulai dari sudut = 0 sampai 90 derajad
.
Kenaikkan nilai sudut harus kecil 1, misalnya 0,1.
Tidak dapat menggunakan perintah for to do
Menggunakan perintah repeat – until atau while –do.
x,y -x,y
x,-y -x,-y
0,0
30102012 Komputer Grafik Widjianto versi
2012
procedure EllipsTrigonoPusat00Warna4; begin
h := StrToInteH.Text; k := StrToInteK.Text;
sudut := 0; Repeat
radian := sudut 180 3.14; x := h cosradian;
y := k sinradian;
Canvas.Pixels[truncx0 +x, truncy0-y] := clRed; Canvas.Pixels[truncx0 +x, truncy0+y] := clBlue;
Canvas.Pixels[truncx0 -x, truncy0-y] := clYellow; Canvas.Pixels[truncx0 -x, truncy0+y] := clGreen;
sudut := sudut + 0.5
Until sudut = 90; end;
0,0 x,y
x,-y -x,-y
-x,y
procedure EllipsTrigonoPusat00Warna4; begin
h := StrToInteH.Text; k := StrToInteK.Text;
sudut := 0; Repeat
radian := sudut 180 3.14; x := h cosradian;
y := k sinradian;
Canvas.Pixels[truncx0 +x, truncy0-y] := clRed; Canvas.Pixels[truncx0 +x, truncy0+y] := clBlue;
Canvas.Pixels[truncx0 -x, truncy0-y] := clYellow; Canvas.Pixels[truncx0 -x, truncy0+y] := clGreen;
sudut := sudut + 0.5
Until sudut = 90; end;
30102012 Komputer Grafik Widjianto versi
2012
procedure EllipsTrigonoPusatABWarna4 ;
begin h := StrToInteH.Text;
k := StrToInteK.Text; a := StrToInteA.Text;
b := StrToInteB.Text; sudut := 0;
Repeat
radian := sudut180 3.14; x := h cosradian;
y := k sinradian; Canvas.Pixels[truncx0 + x+a, truncy0 - y+b] := clRed;
Canvas.Pixels[truncx0 + x+a, truncy0 - -y + b] := clBlue; Canvas.Pixels[truncx0 + -x+a, truncy0- y + b] := clYellow;
Canvas.Pixels[truncx0 + -x+a, truncy0 - -y + b] := clGreen; sudut := sudut + 0.5
Until sudut = 90; end;
a,b x+a,y+b
x+a,-y+b -x+a,-y+b
-x+a,y+b
procedure EllipsTrigonoPusatABWarna4 ;
begin h := StrToInteH.Text;
k := StrToInteK.Text; a := StrToInteA.Text;
b := StrToInteB.Text; sudut := 0;
Repeat
radian := sudut180 3.14; x := h cosradian;
y := k sinradian; Canvas.Pixels[truncx0 + x+a, truncy0 - y+b] := clRed;
Canvas.Pixels[truncx0 + x+a, truncy0 - -y + b] := clBlue; Canvas.Pixels[truncx0 + -x+a, truncy0- y + b] := clYellow;
Canvas.Pixels[truncx0 + -x+a, truncy0 - -y + b] := clGreen; sudut := sudut + 0.5
Until sudut = 90; end;
30102012 Komputer Grafik Widjianto versi
2012
procedure EllipsTrigonoPusatABWarna2; begin
h := StrToInteH.Text; k := StrToInteK.Text;
a := StrToInteA.Text; b := StrToInteB.Text;
sudut := 0; Repeat
radian := sudut 180 3.14; x := h cosradian;
y := k sinradian; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clRed;
Canvas.Pixels[truncx0 +x+a, truncy0--y+b] := clRed; Canvas.Pixels[truncx0 - x+a, truncy0-y+b] := clYellow;
Canvas.Pixels[truncx0 - x+a, truncy0--y+b] := clYellow; sudut := sudut+ 0.5
Until sudut = 90; end;
a,b x+a,y+b
-x+a,-y
b
-x+a,y+b
procedure EllipsTrigonoPusatABWarna2; begin
h := StrToInteH.Text; k := StrToInteK.Text;
a := StrToInteA.Text; b := StrToInteB.Text;
sudut := 0; Repeat
radian := sudut 180 3.14; x := h cosradian;
y := k sinradian; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clRed;
Canvas.Pixels[truncx0 +x+a, truncy0--y+b] := clRed; Canvas.Pixels[truncx0 - x+a, truncy0-y+b] := clYellow;
Canvas.Pixels[truncx0 - x+a, truncy0--y+b] := clYellow; sudut := sudut+ 0.5
Until sudut = 90; end;
x+a,-y+b
30102012 Komputer Grafik Widjianto versi
2012
procedure EllipsTrigonoPusatABWarna1; begin
h := StrToInteH.Text; k := StrToInteK.Text;
sudut := 0; Repeat
radian := sudut 180 3.14; x := h cosradian;
y := k sinradian; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clRed;
sudut := sudut+ 0.5
Until sudut =360; end;
procedure EllipsTrigonoPusatABWarna1; begin
h := StrToInteH.Text; k := StrToInteK.Text;
sudut := 0; Repeat
radian := sudut 180 3.14; x := h cosradian;
y := k sinradian; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clRed;
sudut := sudut+ 0.5
Until sudut =360; end;
a,b x+a,y+b
x+a,-y+b -x+a,-y
b
-x+a,y+b
30102012 Komputer Grafik Widjianto versi
2012
4. Menggambar Fungsi Trigonometri
Menggambar fungsi trigonometri mengkonversikan besaran sudut ke besaran sumbu datar x.
Sumbu datar dapat dikonversikan dengan beberapa ukuran.
Jika setengah sumbu x diinginkan untuk 1 gambar penuh, konversi sudut 360 derajad setara dengan ClientWidth div 2.
Jika setengah sumbu x diinginkan untuk 2 gambar penuh, maka konversinya sudut 360 derajad setara dengan ClientWidth div 4,
dan seterusnya.
Amplitudo fungsi ditentukan sendiri dengan nilai tertentu 1 umumnya diambil cukup besar agar bentuk grafik tampak jelas.
4. Menggambar Fungsi Trigonometri
Menggambar fungsi trigonometri mengkonversikan besaran sudut ke besaran sumbu datar x.
Sumbu datar dapat dikonversikan dengan beberapa ukuran.
Jika setengah sumbu x diinginkan untuk 1 gambar penuh, konversi sudut 360 derajad setara dengan ClientWidth div 2.
Jika setengah sumbu x diinginkan untuk 2 gambar penuh, maka konversinya sudut 360 derajad setara dengan ClientWidth div 4,
dan seterusnya.
Amplitudo fungsi ditentukan sendiri dengan nilai tertentu 1 umumnya diambil cukup besar agar bentuk grafik tampak jelas.
30102012 Komputer Grafik Widjianto versi
2012
4.1 Menggambar Fungsi Sinus
Bentuk umum fungsi sinus adalah y = A. sin α , di mana α dalam satuan radian dan
A bilangan yang cukup besar.
Batas penggambaran grafik dapat ditentukan sendiri.
procedure Sinus; Begin
n := StrToIntebanyakGrafik.Text; ampli := StrToInteAmpli.Text;
SudutAwal := StrToFloateSdtAwal.Text; SudutAkhir := StrToFloateSdtAkhir.Text;
sudut := SudutAwal; Repeat
radian := sudut180 3.14; x := sudut360 ClientWidth div n;
1layar n grafik y := Ampli sinradian;
Canvas.Pixels[truncx0 + x, truncy0 - y] := clBlue; Sudut := sudut + 0.1;
Until sudut = SudutAkhir; end;
Program procedure Sinus;
Begin
n := StrToIntebanyakGrafik.Text; ampli := StrToInteAmpli.Text;
SudutAwal := StrToFloateSdtAwal.Text; SudutAkhir := StrToFloateSdtAkhir.Text;
sudut := SudutAwal; Repeat
radian := sudut180 3.14; x := sudut360 ClientWidth div n;
1layar n grafik y := Ampli sinradian;
Canvas.Pixels[truncx0 + x, truncy0 - y] := clBlue; Sudut := sudut + 0.1;
Until sudut = SudutAkhir; end;
Program
30102012 Komputer Grafik Widjianto versi
2012
4.2 Menggambar Fungsi Cosinus