b. Lingkaran Dengan Pusat a,b dan Radius r
Persamaannya: x – a
2
+ y – b
2
= r
2
Persamaan ini diperoleh dengan menggeser titik pusat 0,0 ke a,b dan titik-titik lainnya berubah seperti tampak pada gambar berikut ini.
-x+a, y+b x+a, y+b
y+a, x+b
x+a, -y+b y+a, -x+b
-y+a, -x+b
-x+a, -y+b -y+a, x+b
a,b
30102012 Komputer Grafik Widjianto versi
2012
procedure LingkPolinomPusatABWarna8; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; x := 0;
Repeat
y := sqrtsqrr - sqrx; 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] := clPurple;
Canvas.Pixels[truncx0 +-x+a, truncy0--y+b] := clNavy; 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] := clYellow;
Canvas.Pixels[truncx0 +-y+a, truncy0--x+b] := clTeal; x := x + 0.5;
Until x = 0.707 r; end;
a,b x+a, y+b
-x+a, y+b
y+a, -x+b y+a, x+b
-y+a, -x+b -y+a, x+b
-x+a, -y+b x+a, -y+b
procedure LingkPolinomPusatABWarna8; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; x := 0;
Repeat
y := sqrtsqrr - sqrx; 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] := clPurple;
Canvas.Pixels[truncx0 +-x+a, truncy0--y+b] := clNavy; 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] := clYellow;
Canvas.Pixels[truncx0 +-y+a, truncy0--x+b] := clTeal; x := x + 0.5;
Until x = 0.707 r; end;
Program
30102012 Komputer Grafik Widjianto versi
2012
Mengatur warna yang berdekatan dibuat sama. Pemilihan warna bebas.
procedure LingkPolinomPusatABWarna4; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; x := 0;
Repeat
y := sqrtsqrr - sqrx; 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; x := x + 0.5;
Until x 0.707 r; 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 LingkPolinomPusatABWarna4; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; x := 0;
Repeat
y := sqrtsqrr - sqrx; 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; x := x + 0.5;
Until x 0.707 r; end;
Program
30102012 Komputer Grafik Widjianto versi
2012
procedure LingkPolinomPusatABWarna2; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; x := 0;
Repeat y := sqrtsqrr - sqrx;
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] := clBlue; Canvas.Pixels[truncx0 +-x+a, truncy0--y+b] := clBlue;
Canvas.Pixels[truncx0 +y+a, truncy0-x+b] := clBlack; Canvas.Pixels[truncx0 +y+a, truncy0--x+b] := clBlack;
Canvas.Pixels[truncx0 +-y+a, truncy0-x+b] := clBlack; Canvas.Pixels[truncx0 +-y+a, truncy0--x+b] := clBlack;
x := x + 0.5; Until x 0.707 r;
end;
a,b x+a, y+b
-x+a, y+b
y+a, -x+b y+a, x+b
-y+a, -x+b
-x+a, -y+b x+a, -y+b
-y+a, x+b
procedure LingkPolinomPusatABWarna2; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; x := 0;
Repeat y := sqrtsqrr - sqrx;
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] := clBlue; Canvas.Pixels[truncx0 +-x+a, truncy0--y+b] := clBlue;
Canvas.Pixels[truncx0 +y+a, truncy0-x+b] := clBlack; Canvas.Pixels[truncx0 +y+a, truncy0--x+b] := clBlack;
Canvas.Pixels[truncx0 +-y+a, truncy0-x+b] := clBlack; Canvas.Pixels[truncx0 +-y+a, truncy0--x+b] := clBlack;
x := x + 0.5; Until x 0.707 r;
end;
Program
30102012 Komputer Grafik Widjianto versi
2012
procedure LingkPolinomPusatABWarna1; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; x := -r;
Repeat y := sqrtsqrr - sqrx;
Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clBlue; x := x + 0.5;
Until x = r ; separo lingkaran Repeat
y := sqrtsqrr - sqrx; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clBlue;
x := x - 0.5;
Until x= -r ;
end;
a,b x+a, y+b
-x+a, y+b
y+a, -x+b y+a, x+b
-y+a, -x+b
-x+a, -y+b x+a, -y+b
-y+a, x+b
procedure LingkPolinomPusatABWarna1; begin
a := StrToInteA.Text; b := StrToInteB.Text;
r := StrToInteR.Text; x := -r;
Repeat y := sqrtsqrr - sqrx;
Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clBlue; x := x + 0.5;
Until x = r ; separo lingkaran Repeat
y := sqrtsqrr - sqrx; Canvas.Pixels[truncx0 +x+a, truncy0-y+b] := clBlue;
x := x - 0.5;
Until x= -r ;
end;
30102012 Komputer Grafik Widjianto versi
2012
2.2 Metode Trigonometri