en=new Pen (Color. FromArgb (255  , rgb [0], rgb [1], rgb [2])); (int yt=miny; yt  lt;=maxy; yt ++)   
 {.  Clear (); (y [0]!=Y [1]) 
   {= (float) (yt-y [1])/(float) (y [0] - y [1]); (t  gt;=0  amp;  amp; t  lt;=1).  Insert (0, (int) (t * x [0] + (1-t) * x [1])); 
  } 
   {= (float) (yt-y [2])/(float) (y [1] - y [2]); (t  gt;=0  amp;  amp; t  lt;=1).  Insert (0, (int) (t * x [1] + (1-t) * x [2])); 
  } 
   {= (float) (yt-y [2])/(float) (y [0] - y [2]); (t  gt;=0  amp;  amp; t  lt;=1).  Insert (0, (int) (t * x [0] + (1-t) * x [2])); 
  }.  DrawLine (myPen, (int) mas [0], yt, (int) mas [1], yt); (mas. Count == 3) 
   {.  DrawLine (myPen, (int) mas [1], yt, (int) mas [2], yt); 
  } 
  } 
  } 
  } 
  } 
   Форма: System; System.  Collections.  Generic; System.  ComponentModel; System.  Data; System.  Drawing; System.  Linq; System.  Text; System.  Windows.  Forms; System.  Drawing; System.  Drawing.  Drawing2D; Laba3 
   {partial class Form1: Form 
   {int k=0; int [] x=new int [3]; int [] y=new int [3]; int [] rgb=new int [3]; Form1 () 
   {(); 
  } void Form1_MouseDown (object sender, MouseEventArgs e) 
   {(k  lt;=2) 
   {[k]=e.X; [k]=e.Y; (k == 2) 
   {[0]=255; [2]=0; [2]=0; g=Graphics.  FromHwnd (this. Handle); f=new FillTriangle () ;.  Fill (g, x, y, rgb) ;.  Dispose (); 
  } ++; 
  }; 
  } 
  } 
  } 
   Малюнок 3.1 Реалізація програми, яка демонструє метод сканує рядки для зафарбовування трикутних областей 
     .  Паралельна проекція  
     Завдання: Написати програму, яка будує на екрані зображення опуклого тривимірного тіла при паралельній проекції.  Видалити невидимі грані.  Видимі грані зафарбувати відтінками сірого кольору в залежності від розташування відповідної грані і джерела світла.  Для зафарбовування граней використовувати метод сканує рядки [2]. 
   Рішення: 
     Клас: 
   using System; 
				
				
				
				
			   using System.  Collections.  Generic; System.  Linq; System.  Text; System.  Drawing; System.  Collections; Triangle 
   {FillTriangle 
   {void Fill (Graphics g, int [] x, int [] y, int [] rgb) 
   {maxy, miny; mas=new ArrayList (); a; myPen=new Pen (Color. FromArgb (255, rgb [0], rgb [1], rgb [2])); (Math. Abs (  (x [1] - x [0]) * (y [2] - y [0]) - (x [2] - x [0]) * (y [1] - y [0]))  lt; =0.001) 
   {.  DrawLine (myPen, x [0], y [0], x [1], y [1]) ;.  DrawLine (myPen, x [1], y [1], x [2], y [2]) ;; 
  }=y [0];=maxy; (int i=1; i  lt;=2; i ++) 
   {(y [i]  gt; maxy) maxy=y [i]; (y [i]  lt; miny) miny=y [i]; 
  } (int yt=miny; yt  lt;=maxy; yt ++) 
   {.  Clear (); (y [0]!=Y [1]) 
   {= (float) (yt - y [1])/(float) (y [0] - y [1]); (a  gt;=0  amp;  amp; a  lt;=1) 
   {.  Insert (0, (int) (a * x [0] + (1 - a) * x [1])); 
  } 
  } (y [1]!=y [2]) 
   {= (float) (yt - y [2])/(float) (y [1] - y [2]); (a  gt;=0  amp;  amp; a  lt;=1) 
   {.  Insert (0, (int) (a * x [1] + (1 - a) * x [2])); 
  } 
  } (y [0]!=y [2]) 
   {= (float) (yt - y [2])/(float) (y [0] - y [2]); (a  gt;=0  amp;  amp; a  lt;=1) 
   {.  Insert (0, (int) (a * x [0] + (1 - a) * x [2])); 
  } 
  } (mas. Count == 3) 
   {.  DrawLine (myPen, (int) mas [0], yt, (int) mas [1], yt) ;.  DrawLine (myPen, (int) mas [1], yt, (int) mas [2], yt); 
  }.  DrawLine (myPen, (int) mas [0], yt, (int) mas [1], yt); 
  } 
  } 
  } 
  } 
   Форма: System; System.  Collections.  Generic; System.  ComponentModel; System.  Data; System.  Drawing; System.  Linq; System.  Text; System.  Windows.  Forms; System.  Drawing.  Drawing2D; Lab_4 
   {partial class Form1: Form 
   {double [] xv={0, 2, 0, 0, 2, 0}; double [] yv={0, 0, 2, 0, 0, 2}; double [] zv={0,  0, 0, 2, 2, 2}; double [] xpl=new double [6]; double [] ypl=new double [6]; int [] xfrm=new int [6]; int [] yfrm=new  int [6]; int [,] gran1=new int [3, 4]; int [,] gran2=new int [2, 3]; double u1x, u1y, u1z, u2x, u2y, u2z, u3x, u3y,  u3z; double rx, ry, rz; double ax, ay, az; double sx, sy, sz; double r; double a, b, c, d; Form1 () 
   {(); 
  } void Form1_Load (object sender, EventArgs e) 
   {= 10;  ry=5;  rz=5;=1;  ay=1;  az=1;=- 5;  sy=1;  sz=5;=Math.  Sqrt (3); x=ax - rx;  u3y=ay - ry;  u3z=az - rz; t=Math.  Sqrt (u3x * u3x + u3y * u3y + u3z * u3z); x=u3x/t;  u3y=u3y/t;  u3z=u3z/t; x=u3y;  u1y=- u3x;  u1z=0;=Math.  Sqrt (u1x * u1x + u1y * u1y + u1z * u1z); x=u1x/t;  u1y=u1y/t;  u1z=u1z/t; x=u1y * u3z - u3y * u1z;  u2y=u3x * u1z - u1x * u3z;  u2z=u1x * u3y - u3x * u1y;=Math.  Sqrt (u2x * u2x + u2y * u2y + u2z * u2z); x=u2x/t;  u2y=u2y/t;  u2z=u2z/t; [1, 0]=0;  gran1 [1, 1]=1;  gran1 [1, 2]=4;  gran1 [1, 3]=3; [0, 0]=0;  gran1 [0, 1]=3;  gran1 [0, 2]=5;  gran1 [0, 3]=2; [2, 0]=1;  gran1 [2, 1]=2;  gran1 [2...