ΠΡΠ°ΡΠΈΠΊΠ°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: delphi
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Ρ , Ρ ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (0, 0), ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΈ Ρ ΠΈΠ΄Π΅Ρ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, Π° ΠΏΠΎ ΠΎΡΠΈ Ρ — ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·. ΠΠ»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ²Π΅Ρ. Π€ΡΠ½ΠΊΡΠΈΡ RGB () ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠ²Π΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ, Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΈΠ½Π΅Π³ΠΎ (ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎΠΌ ΠΎΡ 0 Π΄ΠΎ 255). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ½ΡΠΉ — RGB (0, 0, 0), ΠΊΡΠ°ΡΠ½ΡΠΉ — RGB (255, 0… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠ°ΡΠΈΠΊΠ°. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: delphi (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ½ΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ PaintBox (ΠΏΠ°Π½Π΅Π»Ρ System). ΠΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°, ΠΈ Π² Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Canvas (Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠ°Π½Π²Π° ΠΈΠ»ΠΈ Ρ ΠΎΠ»ΡΡ) ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°: PaintBoxl.Canvas. Π£ Π½Π΅Π³ΠΎ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Pixels (PaintBoxl.Canvas.Pixels), ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° — ΠΏΠΎΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΊΠ°Π½Π²Ρ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ — ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ°. Π Pixels [] ΠΎΡΡΡΠ΅Ρ ΡΠΎΡΠ΅ΠΊ (ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² ΡΠΊΡΠ°Π½Π°) Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ 0.
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Ρ , Ρ ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (0, 0), ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΈ Ρ ΠΈΠ΄Π΅Ρ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, Π° ΠΏΠΎ ΠΎΡΠΈ Ρ — ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·. ΠΠ»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ²Π΅Ρ. Π€ΡΠ½ΠΊΡΠΈΡ RGB () ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠ²Π΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ, Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΈΠ½Π΅Π³ΠΎ (ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎΠΌ ΠΎΡ 0 Π΄ΠΎ 255). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ½ΡΠΉ — RGB (0, 0, 0), ΠΊΡΠ°ΡΠ½ΡΠΉ — RGB (255, 0, 0), ΡΠΈΠ½ΠΈΠΉ — RGB (0, 0, 255), Π±Π΅Π»ΡΠΉ — RGB (255, 255, 255).
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Canvas Π΅ΡΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Ρ Π€ΠΎΡΠΌΡ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΠΎΡΠΌΠ΅.
ΠΠ»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Canvas ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌΠΈ Ρ ΠΎΠ»ΡΡΡ:
- β’ Arc — Π΄ΡΠ³Π°;
- β’ Ellipse — Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΡΠ»Π»ΠΈΠΏΡ ΠΈΠ»ΠΈ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ;
- β’ FillRect — Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ;
- β’ LineTo — ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π»ΠΈΠ½ΠΈΡ Π² Π·Π°Π΄Π°Π½Π½ΡΡ ΡΠΎΡΠΊΡ;
- β’ MoveTo — ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Π·Π°Π΄Π°Π½Π½ΡΡ ΡΠΎΡΠΊΡ;
- β’ Rectangle — ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½Π°Ρ ΡΠ°ΠΌΠΊΠ°;
- β’ TextOut — Π²ΡΠ²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ°.
Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ — ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΊΠ°Π½Π²Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
- 1. Π Π°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ PaintBox.
- 2. ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΊΠ°Π½Π²Ρ 300 ΠΊΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ Π² ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡΡ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡΠΌ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ.
Π ΠΈΡ. 73. ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π²Ρ ΠΊΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
- 3. ΠΠ»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π»ΠΊΠ½ΡΡΡ ΠΌΡΡΡΡ Π½Π° Π·Π°ΠΊΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π² ΡΡΡΠΎΠΊΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.
- 4. ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ Π½Π°ΠΆΠ°ΡΠΈΡ, procedure TForml. ButtonlClick (Sender: TObject);
var i, x, y: Integer; begin
randomize;
for i := 1 to 300 do begin
x := random (100); Ρ := random (100);
PaintBoxl.Canvas.Pixels[x, y] := RGB (255,0,0); end
end;
- 5. ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ RGB (255, 0, 0) Π½Π° RGB (random (255), random (255), random (255)).
- 6. ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΎΠ½ ΡΠ΅ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠ°Π½Π²Ρ FillRect. ΠΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠΈ ΡΠ²Π΅ΡΠΎΠΌ:
FillRect (Rect (0, 0, 100, 100)) // ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ.
// ΠΈ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ³Π»ΠΎΠ².
Π ΠΈΡ. 74. ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Rect ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΠΏΠ° «ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ». ΠΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ FillRect Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²Π΅Ρ Π·Π°Π»ΠΈΠ²ΠΊΠΈ:
PaintBoxl.Canvas.Brush.Color := RGB (0, 0, 0);
Π ΠΈΡ. 75. Π€ΠΎΠ½ ΠΊΠ°Π½Π²Ρ
procedure TForml. ButtonlClick (Sender: TObject); var
i, x, y: Integer; begin
PaintBoxl.Canvas.Brush.Color := RGB (0, 0, 0); PaintBoxl. Canvas. FillRect (Rect (0, 0, 100, 100));
for i := 1 to 300 do begin
x := random (100);
Ρ := random (100);
PaintBoxl.Canvas.Pixels[x, y] :=.
RGB (random (255)j random (255), random (255));
end
end;
7. ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°Π½Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌΠΈ ΡΠ°Π·Π½ΠΎΡΠ²Π΅ΡΠ½ΡΠΌΠΈ Π»ΠΈΠ½ΠΈΡΠΌΠΈ ΡΠ°Π·Π½ΠΎΠΉ ΡΠΎΠ»ΡΠΈΠ½Ρ. ΠΠΈΠ½ΠΈΡ ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (ΡΠ½Π°ΡΠ°Π»Π° Π·Π°Π΄Π°Π΅ΡΡΡ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ°, ΠΏΠΎΡΠΎΠΌ ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ):
PaintBoxl.Canvas.MoveTo (10,10);
PaintBoxl.Canvas.LineTo (50,50);
Π¦Π²Π΅Ρ Π»ΠΈΠ½ΠΈΠΈ ΠΈ ΡΠΎΠ»ΡΠΈΠ½Π° Π·Π°Π΄Π°ΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΊΠ°Π½Π²Ρ Π Π΅ΠΏ (ΠΊΠ°ΡΠ°Π½Π΄Π°Ρ). Pen. Color — ΡΠ²Π΅Ρ ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ°, Pen. Width — ΡΠΎΠ»ΡΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ — 1).
Π ΠΈΡ. 76. ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π²Ρ Π»ΠΈΠ½ΠΈΡΠΌΠΈ
for i := 1 to 300 do begin
PaintBoxl.Canvas.Pen.Color :=.
RGB (random (255), random (255), random (255)); PaintBoxl.Canvas.Pen.Width := random (3) + 1; x := random (100); Ρ := random (100);
PaintBoxl.Canvas.MoveTo (x, y); x := random (100); Ρ := random (100);
PaintBoxl.Canvas.LineTo (x, y); end.
8. ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°Π½Π²Ρ ΡΠ»Π»ΠΈΠΏΡΠ°ΠΌΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (ΠΊΡΡΠ³ΠΈ, ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ — ΡΠ°ΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ ΡΠ»Π»ΠΈΠΏΡΠ°). ΠΠ»Π»ΠΈΠΏΡΡ ΡΠΈΡΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Ellipse () Ρ ΡΠ΅ΡΡΡΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ — ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ³Π»ΠΎΠ² ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»Π»ΠΈΠΏΡ Π²ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ. ΠΡΠ°Π½ΠΈΡΠ° ΡΠ»Π»ΠΈΠΏΡΠ° ΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π Π΅ΠΏ ΠΊΠ°Π½Π²Ρ, Π° Π·Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ»Π»ΠΈΠΏΡ Π²Π½ΡΡΡΠΈ ΡΠ²Π΅ΡΠΎΠΌ ΠΊΠΈΡΡΠΈ Brush ΠΊΠ°Π½Π²Ρ.
Π ΠΈΡ. 77. ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π²Ρ ΡΠ»Π»ΠΈΠΏΡΠ°ΠΌΠΈ
for i := 1 to 300 do begin
// ΡΠ²Π΅Ρ ΠΈ ΡΠΈΡΠΈΠ½Π° ΠΊΠ°ΠΉΠΌΡ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π»ΠΈΠΏΡΠ° PaintBoxl.Canvas.Pen.Color :=.
RGB (random (255), random (255), random (255));
PaintBoxl.Canvas.Pen.Width := random (3) + 1;
// ΡΠ²Π΅Ρ Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠ»Π»ΠΈΠΏΡΠ° PaintBoxl.Canvas.Brush.Color :=.
RGB (random (255), random (255), random (255));
// ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ³Π»ΠΎΠ² ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π»ΠΈΠΏΡ Ρ := random (150); Ρ := random (150); Ρ 2 := random (150); Ρ2 := random (150);
// Π²ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ»Π»ΠΈΠΏΡ
PaintBoxl.Canvas.Ellipse (x, Ρ, Ρ 2, Ρ2); end;
- 9. Π‘Π΄Π΅Π»Π°ΡΡ ΠΊΠ°Π½Π²Ρ Π½Π° Π²Π΅ΡΡ ΡΠΊΡΠ°Π½. ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°Π·Π½ΠΎΡΠ²Π΅ΡΠ½ΡΠΌΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°ΠΌΠΈ Π² ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡΡ ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ FillRectO.
- 10. Π‘ΠΎΠ·Π΄Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ°Π· ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΡΠ»ΠΈΠ°.
procedure TForml. ButtonlClick (Sender: TObject); var
RE, IM, RE1, IM1: REAL;
V, X, Y: INTEGER;
// Π²ΡΠ²ΠΎΠ΄ ΡΠΎΡΠΊΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° procedure PUTPIXEL (X, Y, Ρ: INTEGER); var
cc: TColor; begin
case c mod 8 of
0:
cc := clBlack;
1:
cc := clRed;
2:
cc := clLime;
3:
cc := clYellow;
4:
cc := clBlue;
5:
cc := clFuchsia;
6:
cc := clAqua;
7:
cc := clWhite;
end;
PaintBoxl.Canvas.Pixels[X, Y] := cc; end;
procedure QWA; begin
RE1 := RE * RE — IM * IM;
IM1 := 2 * RE * IM;
RE := RE1;
IM := IM1; end;
procedure KUB; begin
RE1 := RE * (RE * RE — 3 * IM * IM);
IM1 := IM * (3 * RE * RE — IM * IM);
RE := RE1;
IM := IM1; end;
begin
PaintBoxl.Canvas.Brush.Color := rgb (0j 0, 0); PaintBoxl.Canvas.FillRect (Rect (0j 0, 640, 480)); X := -320; repeat
Y := -240; repeat V := 0;
RE := -1. + 0.001 * X;
IM := 0 + 0.001 * Y; repeat KUB;
RE := RE + 1.3;
IM := IM + 1.1 828 201 638;
if RE * RE > 50 then break;
if IM * IM > 50 then break;
V := V + 1; until V > 40;
if (ABS (RE) > 10) or (ABS (IM) > 1000) then begin.
PUTPIXEL ((X + 320), (Y + 240), TRUNC (V)); end else.
PUTPIXEL ((X + 320), (Y + 240), 0);
Y := Y + 1; until Y > 241;
X := X + 1; until X > 320;
End;