Название: Компьютерная графика ( Е.Н. Павенко)

Жанр: Информатика

Просмотров: 1212


1. варианты задания

 

Обозначим через  координаты точек поверхности шара. Будем использовать параметрическую форму — функции угловых координат широты и долготы:

             = R × cos В × sin L =  (В, L),

             = R × cos В × cos L = (B, L),

             =R × sin B = (B).

Рассмотрим варианты деформации поверхности шара, которые можно описать следующим образом:

где  – величины, которые могут быть функциями от координат  широты и долготы. Вариантами расчетно-графической работы являются различные деформации шара, цилиндра и тора.

 

Вариант 1,2 (рис. 1)

 

 

Рис. 1. Эллипсоиды

 

Вариант 3 (рис. 2)

 

Рис. 2. Наполовину эллипсоид, наполовину шар

 

Вариант 4 (рис. 3)

Рис. 3. Верхняя часть – вогнутый эллипсоид

Вариант 5 (рис. 4)

 

Рис. 4. Половинки шара разнесены

 

Вариант 6 (рис. 5)

 

Рис. 5. "Груша"

 

Вариант 7 (рис. 6)

 

Рис. 6. "Капля"

 

Вариант 8 (рис. 7)

 

 

Рис. 7. Это не тор

 

В рассмотренных выше примерах для деформации формы шара были использованы преобразования координат только по оси z. В нижеследующих примерах выполняются преобразования также и координат x, у (рис. 8–12).

Вариант 9 (рис. 8)

 

Рис. 8. Сдвиг по х пропорционально квадрату z

 

Вариант 10 (рис. 9)

 

Рис. 9. Сдвиг по х пропорционально кубу z

 

Вариант 11 (рис. 10)

 

Рис. 10. Модуляция х, у синусом долготы

 

Вариант 12 (рис. 11)

 

Рис. 11. «Чеснок»

 

Вариант 13 (рис. 12)

 

 

Рис. 12. Сдвиг пропорционален квадрату широты

Цилиндр

 

Здесь мы будем использовать формулы параметрического описания поверхности цилиндра. В одной из возможных разновидностей такого описания применяются следующие параметры – долгота (l) и высота (h).

х = R sin l, у = R cos l, z = Hh,

Подпись:  

Рис. 13. Вариации формы цилиндра

где l = 0...360°, h = – 0.5...0.5.

Величинами R и Н обозначим соответственно радиус и общую высоту цилиндра (рис. 13).

Параметрические формулы цилиндра удобно использовать в качестве основы для описания поверхностей достаточно сложной формы. В исходных параметрических уравнениях цилиндра

х = R × sin l,

у = R × cos l,

z = H × h,

величины Н и R — это константы.

Рассмотрим примеры поверхностей, когда радиус R является функцией параметров h и l, т. е. R = R(h, l).

 

Вариант 14 (рис. 14)

Рис. 14. «Ваза»

 

Варианты 15, 16 (рис. 15)

Рис. 15. Еще две поверхности вращения

Следующую группу составляют такие вариации формы цилиндра, когда радиус зависит только от долготы, т. е. R = R(l). Пример подобной поверхности показан на рис. 16.

 

Вариант 17 (рис. 16)

 

Рис. 16. Вариант формы цилиндра

 

Вариант 18 (рис. 17)

 

Рис. 17. Винтовая поверхность R = R(h, l)

 

Тор

 

Функции параметрического описания поверхности тора запишем в следующем виде:

           

где R и r — большой и малый радиусы,  и  — широта и долгота. Для замкнутой поверхности углы  и  должны изменяться в полном круговом диапазоне, например, от 0 до 360° или от – 180° до + 180°.

 

Вариант 19

 

На рис. 18 показаны различные способы изображения тора.

 

 

Рис. 18. Простейшее изображение тора: а – каркас; б – поверхность с удаленными невидимыми точками. Вариации формы тора

 

На рис. 19 изображена поверхность многогранника, для которой параметрические формулы такие же, как и для тора. Единственное отличие здесь в том, что широта  изменяется в диапазоне от – 135° до +225° с шагом  = 90°.

 

Вариант 20

 

Рис. 19. Кольцо

 

Вариант 21

 

Если изменять радиус R пропорционально долготе, т. е. R = R(), то получим спираль (рис. 20). Здесь больший диапазон изменения долготы: от – 360° до + 360° соответствует двум виткам спирали.

 

Рис. 20. Спираль

Вариант 22

 

Для пружины (рис. 21) значения координат х и у такие же, как и для тора, а координата z тора суммируется с приращением, пропорциональным долготе:

            х = (R + r × cos) × sin ,

            у = (R + r × cos ) × cos ,

            z = r × sin  + k × .

 

Рис. 21. Пружина

 

Вариант 23. Эллипсоид

 

X = a × cos(v) × sin(u); v изменяется от 0 до

Y = b × sin(v) × sin(u); u изменяется от 0 до

Z = c × cos(v); 

 

Вариант 24. Однополостный гиперболоид

 

X = a × cos(u) × ch(v); v изменяется от 0 до

Y = b × sin(u) × sh(v); u изменяется от –до

Z = c × sh(v);

 

Вариант 25. Суперэллипсоид

 

X = cos 2/m (v) × cos 2/n (u); v изменяется от –  до

Y = cos 2/m (v) × sin 2/n (u); u изменяется от –  до

Z = sin 2/m (v);   m = 10; n = 2;

 

Вариант 26. Однополостный супергиперболоид

 

X = sec 2/m (v) × cos 2/n (u); v изменяется от – до

Y = sec 2/m (v) × sin 2/n (u); u изменяется от –  до

Z = tg 2/m (v);

Вариант 27. Супертороид

 

X = (d + cos 2/m (v)) × cos 2/n (u); v изменяется от –  до

Y = (d + cos 2/m (v)) × sin 2/n (u); u изменяется от –  до

Z = sin 2/m (v);

 

Вариант 28. Эллиптический цилиндр

 

X = a × cos(u); u изменяется от 0 до

Y = b × sin(u); v изменяется от v min до v max

Z = c × v;

 

Вариант 29. Параболический цилиндр

 

X = a × u 2; u меняется от 0 до u max

Y = 2a × u; v меняется от v min до v max

Z = v;

 

Вариант 30. Эллиптический конус

 

X = a × v × cos(u); u меняется от 0 до

Y = b × v × sin(u); v меняется от v min до v max

Z = c × v;