Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[39]

площадь S=2*b*(a+c);

Рассмотрим область треугольника, заданного координатами трех вершин: 1 - (xl, yl), 2 - (x2, y2), 3 - (x3, y3). Площадь треугольника:

S = 0. 5*abs((x1-x2)*(y1+y2) + (x2-x3)*(y2+y3) + (x3-x1)*(y3+y1))

Пусть прямая F1(x,y)=0 проходит через точки 1 и 2. Точка (Xt, Yt), лежащая внутри треугольника находится с той же стороны, что и точка 3, тогда неравенства для обоих точек имеют одинаковый знак, т. е. их произведение положительно:

F1(Xt,Yt)* F1(x3,y3) > 0

Аналогично для других сторон треугольника, получаем:

F2 (Xt,Yt) * F2(x1,y1) > 0 F3 (Xt,Yt)* F3(x2,y2) > 0

Выполнение трех неравенств определяет точку в треугольнике.

Практическое задание N 2. 7

1. Рассчитать число попаданий при стрельбе в прямоугольник, параллелограмм, ромб, смещенные на x0, y0 и в треугольник, заданный координатами своих вершин. Фигуры находятся внутри круга радиуса R. Разброс точек равномерный по площади круга: угол f=2*Pi*Random; радиус r=R*VRandom. Сравнить число попаданий с теоретической вероятностью, равной отношению площади фигуры к площади круга. При визуализации стрельбы точки, попавшие в мишень, отмечать другим цветом.

2. 1. 4. Построение касательных и нормалей к плоским кривым

Для проведения касательной к кривой необходимо задать уравнение кривой в каком либо виде: Y=F(x); или F1(x, y)=0; или X=Fx(t); Y=Fy(t); и координаты точки на кривой (xi,


Уравнение касательной к кривой имеет вид:

(x-xi)*dY/dx =(y-yi); или(x-xi)*dFy/dt = (y-yi)*dFx/dt;

где dY/dx = dF(x)/dx = - (dF1(x, y)/dx)/(dF1(x, y)/dy); Уравнение нормали к кривой имеет вид:

(x-xi) = -(y-yi)*dY/dx; или (x-xi)*dFx/dt = -(y-yi)*dFy/dt;

Пусть уравнение кривой имеет вид: X=A*cos(t); Y=B*sin(t); - эллипс. Алгоритм построения касательной к кривой в расчетной области X Min<=x<=X Max , Y Min<=y<=Y Max следующий.

1)Находим производные dFx/dt=-A*sin(t); dFy/dt=B*cos(t).

2)В области изменения параметра "t" задаем ti и определяем координаты точки Xi, Yi и производные dXi= (dFx/dt)i, dYi= (dFy/dt)i в точке "ti".

3)Находим точки "1" и "2" пересечения касательной с границами расчетной области: при dXi<>0 полагаем x1=x Min и находим y1=(x1-xi)*dYi/dXi + yi;

если y1< y Min, то y1=y Min и определяем x1= (y1-yi)*dXi/dYi + xi; если y1> y Max, то y1=y Max и определяем x1= (y1-yi)*dXi/dYi + xi;

аналогично, при dXi<>0 полагаем x2=x Max и находим y2 по приведенной выше схеме с корректировкой значений y2 и x2.

При dXi=0 полагаем x1=xi и y1=y Max и x2=xi и y2=y Min. 4) Через точки "1" и "2" проводим прямую.

Несколько проще алгоритм построения касательной постоянной длины "2*L" к плоской кривой. В этом случае:

при dXi<>0 находим alf=arctg(dY/dx)i; иначе alf=900; и определяем:

x1 = xi + L*cos(alf);y1 = yi + L*sin(alf);

x2 = xi - L*cos(alf);y2 = yi - L*sin(alf);

При построении нормали используется уравнение нормали к кривой и приведенные выше алгоритмы.

Практическое задание N 2. 8

В заданной прямоугольной области построить серию касательных, либо нормалей к плоским кривым: эллипсу, параболе, гиперболе и т. п.


2. 1. 5. Двумерные преобразования координат

Преобразование координат графических объектов используется с целью модификации, зеркального отображения и перемещения объекта. Основные случаи :

-преобразование системы координат, например, из полярной в декартову,

-изображение типовых или повторяющихся деталей объекта,

-построение проекций трехмерных объектов,

-направленная деформация при синтезе новых форм,

-мультипликация и создание узоров.

Различают двумерные ( 2D ) и трехмерные ( 3D) преобразования. Рассмотрим двумерные аффинные преобразования, когда в получаемом новом изображении объекта сохраняется прямолинейность и параллельность прямых, а также деление отрезков в заданных соотношениях.

Общий вид формул двумерных аффинных преобразований:

x1= an x + a12 y + a13

или в матричном виде:

an ai2 a:

a21 a22 a23 0 0 1

Здесь x, y - координаты исходного, а x1, y1 - преобразованного объекта.

Коэффициенты преобразований a I J сохраняют в виде матрицы, расширенной до квадратной, - при для вычисления коэффициентов составного преобразования перемножают соответствующие матрицы коэффициентов типовых преобразований.

Примеры типовых преобразований и соответствующие им матрицы: ( Ф - исходная фигура, Ф1 - преобразованная )

Параллельный

перенос

1 0 dx 0 1 dy

0 0 1

Масштабирование

Sx = x1/x; Sy = y1/y

Sx 0 0 0 Sy 0

0 0 1

Поворот относительно начала координат

Cos a -sin a 0 sin a cos a 0 0 0 1



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53]