Алгоритм рисования цилиндра

roleks
Дата: 02.06.2017 16:47:36
Здравствуйте!
Подскажите алгоритм рисования цилиндра по 2 точкам и радиусу
roleks
Дата: 02.06.2017 16:52:08
уточнение, 3-мерная система координат
exp98
Дата: 02.06.2017 17:59:02
По 2-м точкам можно только прямую нарисовать либо отрезок, если точки - его концы.
Окружность - однозначно задаётся только по 3-м.
Эллипс (если цилиндр в проекции, то эллипс - проекция окружности) та же кривая 2-го порядка, что и окружность. Не помню сейчас, может и 3-х не хватит.

Или точки у вас не той системы.
Изопропил
Дата: 02.06.2017 17:59:36
roleks
Здравствуйте!
Подскажите алгоритм рисования цилиндра по 2 точкам и радиусу

построить сетку (mesh) для цилиндра радиуса 1, центр нижнего основания в начале координат,
верхнего - (0,0,1)
потом применить аффинное преобразование(масштабирование+ поворот+ сдвиг)
Изопропил
Дата: 02.06.2017 18:02:18
exp98
По 2-м точкам можно только прямую нарисовать либо отрезок, если точки - его концы.
Окружность - однозначно задаётся только по 3-м.
Эллипс (если цилиндр в проекции, то эллипс - проекция окружности) та же кривая 2-го порядка, что и окружность. Не помню сейчас, может и 3-х не хватит.

Или точки у вас не той системы.


прямая - это нормаль для оснований, очевидно же
softwarer
Дата: 02.06.2017 19:59:14
roleks
Подскажите алгоритм рисования цилиндра по 2 точкам и радиусу

Я так понимаю, что Вы имеете в виду круглый цилиндр. Поскольку в задаче не уточняется, какой именно из возможных цилиндров следует нарисовать, я бы облегчил себе жизнь и рисовал бы цилиндр, у которого заданные точки являются центрами оснований. Ну а как нарисовать такой цилиндр, совершенно верно подсказал Изопропил.
Соколинский Борис
Дата: 02.06.2017 20:31:53
Я бы только не стал растрировать образ цилиндра. Если без 3d-движка то рисуется сначала прямоугольник для боковых граней, потом два круга для оснований, с разной заливкой для имитации объема.
mayton
Дата: 02.06.2017 23:10:00
Наверное автор хотел получить нечто вроде:
Картинка с другого сайта.
Где центры центры оснований заданы соотв 2 точками (x1,y1,z1), (x2,y2,z2) и задан радиус R.

Но автор должен нам также сказать с какой точностью надо аппроксимировать боковые поверхности.
(по сути как сильно наш многогранник должен быть похож на цилиндр). Следует ли боковушки
на более мелкие triangle_strip? (Это может быть полезно в играх для иммитации деформации или освещения).
Нужно ли добавлять свойства нормалей? (Реакция на свет)

И самое главное. Каков чортов API юзать? DirectX? OpenGL/WebGL? Unity?
Изопропил
Дата: 03.06.2017 00:06:03
mayton
Каков чортов API юзать? DirectX? OpenGL/WebGL? Unity?

сохранить в любом публичном формате (obj например) вместе с нормалями
Соколинский Борис
Дата: 03.06.2017 10:49:32
Забавная получается гештальт-иллюзия. Интересно, что нужно дорисовать, чтобы она разрешалась.