Другие языки программирования и технологии

Программирование, Pascal ABC, построить цилиндр

Ребята, нужна помощь, не догоняю, помогите!
Задача 14
Всё просто. Берём две окружности, x=r*cos(a), y=0,5*r*sin(a), где а меняем от нуля до двух пи.
Смещение по оси z вычисляем как у1=у+z.
Для построения цилиндра тогда берём некоторый а, находим координаты точек на нижней и верхней окружности и соединяем эти точки прямой. "Смещение точки" получается, если для нахождения точки на второй окружности, х1у1, брать (a+ф).
Конечно при построении следует не забывать, что у вас не "Синклер" а писи, где система координат перевёрнута, плюс надо всё время добавлять смещение начала координат относительно угла окна.
И как-то надо отличать внутреннюю и наружную стороны цилиндра, например при а от нуля до пи линии взять белые, а от пи до двух пи - синие. Но с гиперболоидом раскраска будет сложнее.
Жека Береснев
Жека Береснев
68 125
Лучший ответ
Сабит Жакенов Благодарю, получилось!
uses graphabc;

begin
window.Init(0, 0, 800, 600, clwhite);
window.IsFixedSize := true;
var r:=ReadInteger('R=');
var h:=ReadInteger('h=');
pen.Width := 4;
DrawEllipse(100, 100, 100 + r, 100 + r - (r div 2));
line(100, (100 + r - (r div 2) + 100) div 2, 100, ((100 + r - (r div 2) + 100 + h + h) div 2));
line(100 + r, (100 + r - (r div 2) + 100) div 2, 100 + r, ((100 + r - (r div 2) + 100 + h + h) div 2));
DrawEllipse(100, 100 + h, 100 + r, 100 + r - (r div 2) + h);
end.