Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Комп'ютерна графіка засобами Windows Forms

Реферат Комп'ютерна графіка засобами Windows Forms





, 2]=5; gran1 [2, 3]=4; [0, 0]=0; gran2 [0, 1]=2; gran2 [0, 2]=1; [1, 0]=3; gran2 [1, 1]=4; gran2 [1, 2]=5; (int i=0; i lt; xv. Length; i ++)

{[i]=px (xv [i], yv [i], zv [i]); [i]=py (xv [i], yv [i], zv [i]);

} ();

} double px (double x, double y, double z)

{((x - rx) * u1x + (y - ry) * u1y + (z - rz) * u1z);

} double py (double x, double y, double z)

{((x - rx) * u2x + (y - ry) * u2y + (z - rz) * u2z);

} void Ini ()

{wp, hp; (ClientSize. Width gt;=ClientSize. Height)

{= 2 * r * ClientSize. Width/ClientSize. Height; hp=2 * r;

}

{= 2 * r; hp=2 * r * ClientSize. Height/ClientSize. Width;

}=ClientSize. Width/wp;=ClientSize. Width/2;=- ClientSize. Height/hp;=ClientSize. Height/2;

} override void OnPaint (PaintEventArgs e)

{. OnPaint (e); g=e. Graphics ;. Clear (Color. White); (int i=0; i lt; xv. Length; i ++)

{[i]=fx (xpl [i]); [i]=fy (ypl [i]);

} bx, by, bz, cx, cy, cz, nx, ny, nz; [] rgb=new int [3]; [] x=new int [3]; int [] y=new int [3]; cosfi ;. FillTriangle myFill=new Triangle. FillTriangle (); (int i=0; i lt;=2; i ++)

{= xv [gran1 [i, 1]] - xv [gran1 [i, 0]];=yv [gran1 [i, 1]] - yv [gran1 [i, 0]];=zv [gran1 [i, 1]] - zv [gran1 [i, 0]];=xv [gran1 [i, 2]] - xv [gran1 [i, 0]];=yv [gran1 [i, 2]] - yv [gran1 [i, 0]];=zv [gran1 [i, 2]] - zv [gran1 [i, 0]];=by * cz-bz * cy;=bz * cx-bx * cz;=bx * cy-by * cx; (nx * u3x + ny * u3y + nz * u3z gt; 0)

{= xv [gran1 [i, 0]]; by=yv [gran1 [i, 0]]; bz=zv [gran1 [i, 0]]; (int j=1; j lt;=3; j ++)

{+=xv [gran1 [i, j]]; by +=yv [gran1 [i, j]]; bz +=zv [gran1 [i, j]];

}=bx/4; by=by/4; bz=bz/4;=bx-sx; cy=by-sy; cz=bz-sz;=(nx * cx + ny * cy + nz * cz)/(Math. Sqrt (nx * nx + ny * ny + nz * nz) * Math. Sqrt (cx * cx + cy * cy + cz * cz)); [0]=(int) (- 255 * cosfi/2 + 255/2); [1]=rgb [0]; rgb [2]=rgb [0]; [0]=xfrm [gran1 [i, 0]]; y [0]=yfrm [gran1 [i, 0]]; [1]=xfrm [gran1 [i, 1]]; y [1]=yfrm [gran1 [i, 1]]; [2]=xfrm [gran1 [i, 2]]; y [2]=yfrm [gran1 [i, 2]] ;. Fill (g, x, y, rgb); [0]=xfrm [gran1 [i, 0]]; y [0]=yfrm [gran1 [i, 0]]; [1]=xfrm [gran1 [i, 2]]; y [1]=yfrm [gran1 [i, 2]]; [2]=xfrm [gran1 [i, 3]]; y [2]=yfrm [gran1 [i, 3]] ;. Fill (g, x, y, rgb);

}

} (int i=0; i lt;=1; i ++)

{= xv [gran2 [i, 1]] - xv [gran2 [i, 0]];=yv [gran2 [i, 1]] - yv [gran2 [i, 0]];=zv [gran2 [i, 1]] - zv [gran2 [i, 0]];=xv [gran2 [i, 2]] - xv [gran2 [i, 0]];=yv [gran2 [i, 2]] - yv [gran2 [i, 0]];=zv [gran2 [i, 2]] - zv [gran2 [i, 0]];=by * cz - bz * cy;=bz * cx - bx * cz;=bx * cy - by * cx; (nx * u3x + ny * u3y + nz * u3z gt; 0)

{= xv [gran2 [i, 0]]; by=yv [gran2 [i, 0]]; bz=zv [gran2 [i, 0]]; (int j=1; j lt;=2; j ++)

{+=xv [gran2 [i, j]]; by +=yv [gran2 [i, j]]; bz +=zv [gran2 [i, j]];

}=bx/3; by=by/3; bz=bz/3;=bx - sx; cy=by - sy; cz=bz - sz;=(nx * cx + ny * cy + nz * cz)/(Math. Sqrt (nx * nx + ny * ny + nz * nz) * Math. Sqrt (cx * cx + cy * cy + cz * cz)); [0]=(int) (- 255 * cosfi/2 + 255/2); [1]=rgb [0]; rgb [2]=rgb [0]; [0]=xfrm [gran2 [i, 0]]; y [0]=yfrm [gran2 [i, 0]]; [1]=xfrm [gran2 [i, 1]]; y [1]=yfrm [gran2 [i, 1]]; [2]=xfrm [gran2 [i, 2]]; y [2]=yfrm [gran2 [i, 2]] ;. Fill (g, x, y, rgb); [0]=xfrm [gran2 [i, 0]]; y [0]=yfrm [gran2 [i, 0]]; [1]=xfrm [gran2 [i, 1]]; y [1]=yfrm [gran2 [i, 1]]; [2]=xfrm [gran2 [i, 2]]; y [2]=yfrm [gran2 [i, 2]] ;. Fill (g, x, y, rgb);

}

}

} int fx (double x)

{(int) (a * x + b);

} int fy (double y)

{(int) (c * y + d);

} void Form1_Resize (object sender, EventArgs e)

{(); ();

}

}


}


Малюнок 4.1 Реалізація програми, яка будує на екрані зображення опуклого тривимірного тіла при паралельній проекції


. Центральна проекція


Завдання: Написати програму, яка будує на екрані зображення опуклого тривимірного тіла при центральній проекції. Видалити невидимі грані. Видимі грані зафарбувати відтінками сірого кольору в залежності від розташування відповідної грані і джерела світла. Для зафарбовування граней використовувати метод сканує рядки [2].

Рішення:


Клас:

using System;

using System. Collections. Generic; System. Linq; System. Text; System. Drawing; System. Collections; WindowsFormsApplication1

{FillTriangle

{void Fill (Graphics g, int [] x, int [] y, int [] rgb)

{maxy, miny; mas=new ArrayList (); a;// Параметр альфа=y [0]; maxy=miny; (int i=1; i lt; 3; i ++)

{(y [i] gt; maxy) maxy=y [i]; (y [i] lt; miny) miny=y [i];

} myPen=new Pen (Color. FromArgb (255, rgb [0], rgb [1], rgb [2])); (int yt=miny; yt lt; maxy; yt ++)

{. Clear (); (y [0]!=Y [1])

{= (float) ...


Назад | сторінка 4 з 6 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Double Standards in Modern Politics
  • Реферат на тему: Double Entry Types of Balance Sheet
  • Реферат на тему: Double electric layer. Mechanism of formation and theory of structure
  • Реферат на тему: Edcation system in the USA
  • Реферат на тему: Legal system