Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Практическое задание N 1. 57

Читайте также:
  1. HLA - система; классы антигенов, биологические функции, практическое значение HLA-типирования.
  2. Аналитическое задание к семинару-практикуму (тема 9)
  3. Второе задание
  4. Второе задание
  5. Домашнее задание
  6. Домашнее задание
  7. ДОМАШНЕЕ ЗАДАНИЕ

 

1. Создать уменьшающийся треугольник (деление сторон 9:1) и пульсирующий треугольник.

2. Создать уменьшающийся прямоугольник (деление сторон 3:1) и пульсирующий прямоугольник.

Примечание к п. 1 и п. 2: пульсация фигуры достигается перерисовкой ее в режиме XorPut, при многократном увеличении и последующем уменьшении коэффициента масштабирования, например, по закону: K= K + i*0. 02. Где i - параметр цикла.

 

 

Симметричное отображение фигуры.

Пусть хz - ось зеркальной симметрии, тогда координата "yzi" i-ой точки фигуры в системе координат (xz, yz) определяется по формуле:

 

yzi= (yi-yf)*cos(A)-(xi-xf)*sin(A),

где xf, yf - координаты любой точки на оси зеркальной симметрии,

xi, yi - координаты отображаемой точки в системе координат экрана,

A - угол наклона оси симметрии относительно оси "x" по часовой стрелке.

 

Тогда координаты отраженной точки в системе координат (X0Y) определяются по формулам:

 

xf xoi xi X

0 xoi = xi + 2*yzi*sin(A);

yf * yoi = yi - 2*yzi*cos(A);

yi

yoi

 

XZ

 

Y YZ

 

Приведем пример операторов для расчета координат xo[ i], yo[ i] точек фигуры зеркально отображенной относительно оси, наклоненной под углом "A" и проходящей через точку с координатами xf, yf.

 

for i:= 1 to N do begin

yzi:= round((y[i]-yf)*cos(A) - (x[i]-xf)*sin(A));

xo[i]:= x[i] + 2*round(yzi*sin(A));

yo[i]:= y[i] - 2*round(yzi*cos(A))

End;

 

Практическое задание N 1. 58

 

1. Нарисовать елку с основанием в центре экрана и получить три зеркальных отображения относительно осей, проходящих через центр экрана под углом +450, 00, -450 к оси "х".

2. Выполнить п. 1 для подсвечника со свечой.

 

 

Штриховка углов.

Определим координаты отрезков, образующих стороны угла и поделим их на N-частей. Соединим попарно точки раздела сторон угла так, чтобы наиболее удаленная от вершины угла точка на одной стороне соединялась с наименее удаленной точкой на другой стороне. Приведем процедуру штриховки угла.

 

Procedure UGOL(x1, y1, x2, y2, x3, y3, N: integer);

var xx1, xx2, yy1, yy2, i: integer; k: real;

Begin

for i:= 1 to N+1 do begin k:= (i-1)/N;

xx1:=x1+round((x2-x1)*k); yy1:=y1+round((y2-y1)*k);

xx2:=x2+round((x3-x2)*k); yy2:=y2+round((y3-y2)*k));

line(xx1, yy1, xx2, yy2) { линия штриховки угла }

End

End;

Здесь x2, y2 - координаты вершины угла, x1, y1, x3, y3 - координаты крайних точек сторон. Коэффициент "k" определяет удаленность точки от вершины угла. Огибающая пересекающихся отрезков образует параболическую границу.


Дата добавления: 2015-10-29; просмотров: 88 | Нарушение авторских прав


Читайте в этой же книге: N цвета символов и экрана N цвета символов | Практическое задание N 1. 34 | TextBackGround(5); ClrScr; | Практическое задание N 1. 36 | Практическое задание N 1. 43 | Практическое задание N 1. 45 | Простейшие графические процедуры и функции | PutPixel(xc, yc, i); Circle(xc, yc, 3) Until KeyPressed; | Построение заполненных фигур | Практическое задание N 1. 55 |
<== предыдущая страница | следующая страница ==>
SetColor(S); Circle(xf, yf, R) end;| Создание узоров построением зеркальных отображений фигуры.

mybiblioteka.su - 2015-2024 год. (0.008 сек.)