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

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





Введення

двовимірний графіка проекція координата

Існує чимало мов програмування, але лише деякі з них дійсно хороші. Хороший мова програмування повинен бути одночасно ефективним і гнучким, а його синтаксис - коротким, але ясним. Він повинен полегшувати створення правильного коду, не заважаючи робити це, а також підтримувати найсучасніші можливості програмування, але не ультрамодні тенденції, заводящие в глухий кут. І нарешті, гарна мова програмування повинна володіти ще одною, ледь вловимим якістю: викликати у нас таке відчуття, ніби ми знаходимося у своїй стихії, коли користуємося ним. Саме такою мовою і є С # [1].

Ця робота присвячена вивченню деяких розділів інтерактивної комп'ютерної графіки засобами C #.


1. Двовимірна графіка


Задача: Написати програму, яка будує графік функції на відрізку [a, b], заданої явно. Підібрати відрізок [a, b], який містить тільки одну точку розриву [2].

Рішення:


using System; System. Collections. Generic; System. ComponentModel; System. Data; System. Drawing; System. Linq; System. Text; System. Windows. Forms; System. Drawing. Drawing2D; WindowsFormsApplication5

{partial class Form1: Form

{Form1 ()

{();

} override void OnPaint (PaintEventArgs e)

{. OnPaint (e); g=e. Graphics; xmin, xmax, ymin, ymax, x, y, h; r=3; eps=0.001;=1; xmax=6;=(xmax - xmin)/500;=F (xmin);=ymin;=xmin + h; (x=xmin; x lt; r-eps; x=x + h)

{= F (x); (y lt; ymin) ymin=y; (y gt; ymax) ymax=y;

} (x=r + h; x lt;=xmax; x=x + h)

{= F (x); (y lt; ymin) ymin=y; (y gt; ymax) ymax=y;

} dx=(xmax - xmin) * 0.03f; dy=(ymax - ymin) * 0.03f; ax=ClientSize. Width/(xmax - xmin + 2 * dx); ay=- ClientSize. Height/(ymax - ymin + 2 * dy); bx=- ax * (xmin - dx); by=- ay * (ymax + dy) ;. Transform=new Matrix (ax, 0, 0, ay, bx, by); hf, wf, a, b, c, d; asm=(xmax - xmin)/(ymax - ymin); asf=(float) ClientSize. Width/(float) ClientSize. Height; (asm gt; asf)

{= ClientSize. Width;=(ymax - ymin) * wf/(xmax - xmin);=0;=(ClientSize. Height - hf)/2;=ClientSize. Width;=(ClientSize. Height + hf)/2;

}

{= ClientSize. Height;=(xmax - xmin) * hf/(ymax - ymin);=(ClientSize. Width - wf)/2;=0;=(ClientSize. Width + wf)/2;=ClientSize. Height;

}=(c - a)/(xmax - xmin + 2 * dx);=(b - d)/(ymax - ymin + 2 * dy);=a - ax * (xmin - dx);= b - ay * (ymax + dy); hline=(xmax - xmin) * 0.001f; blackPen=new Pen (Color. Black, hline); bluePen=new Pen (Color. Blue, hline);=xmin ;. DrawLine (bluePen, xmin, 0, xmax, 0) ;. DrawLine (bluePen, 0, ymin, 0, ymax); (x lt;=r - h)

{. DrawLine (blackPen, x, F (x), x + h, F (x + h));=x + h;

}=r + h; (x lt;=xmax)

{. DrawLine (blackPen, x, F (x), x + h, F (x + h));=x + h;

}

} float F (float x)

{x/(x * x - 9);

} void Form1_Resize (object sender, EventArgs e)

{();

}

}

}


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

Завдання: Написати програму, яка будує графік функції на відрізку [a, b], заданої параметрично.

Рішення:


using System; System. Collections. Generic; System. ComponentModel; System. Data; System. Drawing; System. Linq; System. Text; System. Windows. Forms; System. Drawing; System. Drawing. Drawing2D; WindowsFormsApplication1

{partial class Form1: Form

{Form1 ()

{();

} override void OnPaint (PaintEventArgs e)

{. OnPaint (e); g=e. Graphics; xmin, xmax, ymin, ymax, x, t, y, h; tmin=- 5, tmax=5;=F1 (tmin); xmax=F1 (tmax);=(tmax - tmin)/500;=F2 (tmin);=ymin;=tmin + h; (t=tmin; t lt; tmax; t=t + h)

{= F1 (t); (x lt; xmin) xmin=x; (x gt; xmax) xmax=x;=F2 (t); (y lt; ymin) ymin=y; (y gt; ymax) ymax=y;

} dx=(xmax - xmin) * 0.03f; dy=(ymax - ymin) * 0.03f; ax=ClientSize. Width/(xmax - xmin + 2 * dx); ay=- ClientSize. Height/(ymax - ymin + 2 * dy); bx=- ax * (xmin - dx); by=- ay * (ymax + dy); hf, wf, a, b, c, d; asm=(xmax- xmin)/(ymax - ymin); asf=(float) ClientSize. Width/(float) ClientSize. Height; (asm gt; asf)

{= ClientSize. Width;=(ymax - ymin) * wf/(xmax - xmin);=0;=(ClientSize. Height - hf)/2;=ClientSize. Width;=(ClientSize. Height + hf)/2;

}

{= ClientSize. Height;=(xmax - xmin) * hf/(ymax - ymin);=(ClientSize. Width - wf)/2;=0;=(ClientSize. Width + wf)/2;=ClientSize. Height;

}=(c - a)/(xmax - xmin + 2 * dx);=(b - d)/(ymax - ym...


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





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

  • Реферат на тему: Edcation system in the USA
  • Реферат на тему: UNIX System V
  • Реферат на тему: Legal system
  • Реферат на тему: Political party system
  • Реферат на тему: The Federal Reserve System