|
|
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Подскажите алгоритм рисования цилиндра по 2 точкам и радиусу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 16:47 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
уточнение, 3-мерная система координат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 16:52 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
По 2-м точкам можно только прямую нарисовать либо отрезок, если точки - его концы. Окружность - однозначно задаётся только по 3-м. Эллипс (если цилиндр в проекции, то эллипс - проекция окружности) та же кривая 2-го порядка, что и окружность. Не помню сейчас, может и 3-х не хватит. Или точки у вас не той системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 17:59 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleksЗдравствуйте! Подскажите алгоритм рисования цилиндра по 2 точкам и радиусу построить сетку (mesh) для цилиндра радиуса 1, центр нижнего основания в начале координат, верхнего - (0,0,1) потом применить аффинное преобразование(масштабирование+ поворот+ сдвиг) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 17:59 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98По 2-м точкам можно только прямую нарисовать либо отрезок, если точки - его концы. Окружность - однозначно задаётся только по 3-м. Эллипс (если цилиндр в проекции, то эллипс - проекция окружности) та же кривая 2-го порядка, что и окружность. Не помню сейчас, может и 3-х не хватит. Или точки у вас не той системы. прямая - это нормаль для оснований, очевидно же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 18:02 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleksПодскажите алгоритм рисования цилиндра по 2 точкам и радиусу Я так понимаю, что Вы имеете в виду круглый цилиндр. Поскольку в задаче не уточняется, какой именно из возможных цилиндров следует нарисовать, я бы облегчил себе жизнь и рисовал бы цилиндр, у которого заданные точки являются центрами оснований. Ну а как нарисовать такой цилиндр, совершенно верно подсказал Изопропил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 19:59 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Я бы только не стал растрировать образ цилиндра. Если без 3d-движка то рисуется сначала прямоугольник для боковых граней, потом два круга для оснований, с разной заливкой для имитации объема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 20:31 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Наверное автор хотел получить нечто вроде: Где центры центры оснований заданы соотв 2 точками (x1,y1,z1), (x2,y2,z2) и задан радиус R. Но автор должен нам также сказать с какой точностью надо аппроксимировать боковые поверхности. (по сути как сильно наш многогранник должен быть похож на цилиндр). Следует ли боковушки на более мелкие triangle_strip? (Это может быть полезно в играх для иммитации деформации или освещения). Нужно ли добавлять свойства нормалей? (Реакция на свет) И самое главное. Каков чортов API юзать? DirectX? OpenGL/WebGL? Unity? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 23:10 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonКаков чортов API юзать? DirectX? OpenGL/WebGL? Unity? сохранить в любом публичном формате (obj например) вместе с нормалями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 00:06 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Забавная получается гештальт-иллюзия. Интересно, что нужно дорисовать, чтобы она разрешалась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 10:49 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
ИзопропилmaytonКаков чортов API юзать? DirectX? OpenGL/WebGL? Unity? сохранить в любом публичном формате (obj например) вместе с нормалями Каким образом это поможет автору? Вы еще усложнили ему задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 15:58 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleks, вообще-то, алгоритм называется аксонометрическая проекция =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 19:44 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисЗабавная получается гештальт-иллюзия. Интересно, что нужно дорисовать, чтобы она разрешалась. а костыли уже пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 19:46 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonИзопропилпропущено... сохранить в любом публичном формате (obj например) вместе с нормалями Каким образом это поможет автору? Вы еще усложнили ему задачу. пущай матчасть изучает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 21:45 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
1. Цилинд это две одинаковые окружности 2. для того что бы отобразить проекцию окружности на плоскость(экран) используют матрицу трансформации(перехода). т.е. каждую вершину фигуры(в данном случае окружности) перемножают на матрицу трансформации в результате получают координаты точек фигуры относительно экрана. 3. после того как известны координаты всех точек точек остается отобразить их на экране. Ну и соединить точки линиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 22:57 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Чем гадать чаво хотел заказчик, может пусть сначала автор закинет эскиз того чё нужно?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 11:28 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Да и надо знать, невидимые линии рисовать / нет ли? и всё же точки - это что такое: для исходного цилиндра или для его проекции и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 11:33 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
softwarerЯ так понимаю, что Вы имеете в виду круглый цилиндр. тогда уже до кучи и прямой цилиндр, а не Пизанскую башню, но автор, похоже о других не слышал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 11:38 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Спасибо всем ответившим по существу, а также тем кто просто поумничал )) Возможно, я немного не полностью раскрыл задачу. Учтоняю. Есть линия, которая задана двумя 3-д точками. Эта линия есть осью цилиндра. Также задан радиус. Необходимо получить набор 3д-линий, которыми можно отобразить данный цилиндр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 13:24 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleksНеобходимо получить набор 3д-линий, которыми можно отобразить данный цилиндр. Вас не смущает, что их довольно много? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 13:29 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleksСпасибо всем ответившим по существу, а также тем кто просто поумничал )) Возможно, я немного не полностью раскрыл задачу. Учтоняю. Есть линия, которая задана двумя 3-д точками. Эта линия есть осью цилиндра. Также задан радиус. Необходимо получить набор 3д-линий, которыми можно отобразить данный цилиндр. Браток. Я же говорил выше. Не хватает исходных данных. Точность апрокцимации. Сколько боковушек делать? 10? 100? 1000? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 13:44 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Да дайте уж просто контур - для этого уже всё подсказано, до 2-х эллипсов и до 2-х отрезков. Или пусть спросит что непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 13:57 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleks, матиматику знаите? Ну так вперёд!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 15:30 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Это для окружности: x = r * cos fi y = r * sin fi r - радиус, fi - угол ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 16:05 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleksНеобходимо получить набор 3д-линий, которыми можно отобразить данный цилиндр. mesh называется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 16:20 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
iobox, в 3D всегда эллипсы, т.к. постановка наверняка подразумевает 2 различные точки. Хотя необязательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 16:32 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
я хз, не делал такого. Но как мне кажется: по z = 0; x= cos(i) * r; y=sin(i) * r, получаем набор точек с шагом (Pi * 2) / n, где n количество точек, берем чётное число затем копируем точки и задаем для них z, получаем наборы точек для 2ух окружностей. затем соединяем точки парами, берем точку i, i+1, i2 и i2+1 (прямоугольник) и разбиваем его на 2 полигона. сам я не делал такого, чисто теоритически + еще сверху и снизу треугольники от центра к точкам. тут главное, чтоб вершины полигонов были выстроены в правильном порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 16:38 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Я ещё одну подсказку дам. Допустим, что 2 точки - это настоящая высота цилиндра. В какой именно проекции он должен быть нарисован: (*) в ортогональной ( ) в иной В простом случае, отмеченном по умолчанию, необходимо знать угол просмотра (т. зрения). От этого зависит, какой эллипс рисовать и какой длины отрезки будут, а также в каком направлении они будут направлены. И дезавуируя своё предыдущее замечание про "всегда эллипс": если смотреть с торца, то только одну окружность и нарисовать. Ждём-с дальнейшей постановки и, наконец, эскиза от руки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 16:45 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Roman Mejtes, это сферический цилиндр в вакууме. Для расчёта "базовых" точек всё это похоже на правду, но автору это всё нужно куда-то спроектировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 16:48 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Roman MejtesНо как мне кажется Первое, что я опробовал на ЯВУ на i8086 -- это вращать цилиндр, контур только, со скрытием невидимой части основания простой перерисовкой бесцветным параллелограммом (проекция параллельными прямыми). Даже сейчас помню, потому и придираюсь к ТС. Что до дилеммы, посоветовать не могу: хранить ли точки "сферического" цилиндра, к-рые затем преобразовать, или зная формулу преобразования, геометрический "состав изделия", фактуру поверхности, модель света и его отражения, делать это на лету. В конце концов, есть же графические примитивы. Всем успехов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 18:19 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Я рисовал 3D tor на Borland Pascal в VGA-mode. С Z-буфером и освещением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 20:32 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
так топикстартеру - нарисовать нужно или триангуляцию сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 20:42 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Наверное нам надо прекратить пытки автора. Он сам не знает как ему надо сделать. Самый простой вариант - ортогональная проекция цилиндра на плоскость XY. Орт Z игнорируется и рассматривается как глубина экрана. Правда здесь нужно решить еще одну мелкую проблемку о которой все забывают. Перевод из мировых координат в экранные. Например цилиндр задан центрами в (0,0,0), (-3000,-3000,-3000), а экран у нас (стандартный ноутбучный) 1280x720 pix то соотв мы должны масштабировать хотя-бы более чем в 0.5 раз и двигать центр мировых координат чтобы цилиндр занял хотя-бы "приличное" положение от наблюдателя а не в отрицательном квадранте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 20:49 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonПравда здесь нужно решить еще одну мелкую проблемку о которой все забывают. не ищи под фонарём проблему - её здесь нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 20:58 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Ммм.. срачь получается. Ну оки. Давайте так. В режиме концепта. Ни слова больше. Только код. Я начинаю. Код: java 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 21:45 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Малыхин Сергей1. Цилинд это две одинаковые окружности 2. для того что бы отобразить проекцию окружности на плоскость(экран) используют матрицу трансформации(перехода). т.е. каждую вершину фигуры(в данном случае окружности) перемножают на матрицу трансформации в результате получают координаты точек фигуры относительно экрана. 3. после того как известны координаты всех точек точек остается отобразить их на экране. Ну и соединить точки линиями. гуглим матчасть типа вот этой , вспоминаем линейку и вперёд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 06:58 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Столько желающих ответить, не спят, бьют копытом, а ТС как гордая птица. mayton, вряд ли Си нужен, заказ на алгоритм был, но степень детализации алгоритма не заявлена. Для каких целей, ещё бы знать ... Давно уже в школе стереометрию не дают. В принципе ТС не обязан был знать 3Д или благополучно забыть. Там все страхи от надобности создать 3Д-матрицу преобразования, например из углов Эйлера, и как ею пользоваться. Попутно научиться по вектору находить перпендикулярную плоскость. Не зная этого, и разбираться конечно нелегко, я понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 10:39 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98mayton, вряд ли Си нужен, заказ на алгоритм был, 1) где ты Си увидел? 2) алгоритм разумно излагать на каком либо языке программирования ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 10:44 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
упрощаю задачу: есть линия (100,100,100) - (100,1000,100) в в крайних точках необходимо нарисовать круги, которые были бы перпендикулярны к вектору линии пример в картинке прикреплен можно принять что круги нарисованы набором прямых линий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 11:09 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Об этом разговор разве? Усмотрел в регистрозависимости, но если окажется явой, та же хрень, стреляться не буду) Да хоть на ассемблере, посмотрите профиль ТСа, и степень разумности бывает разная, иногда образно доходчивей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 11:10 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleksупрощаю задачу: тут либо цииндр нужен скошенный, либо, чтобы "которые были бы перпендикулярны к вектору линии", то эллипсы на рисунке д.б. повёрнуты по часовой немного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 11:15 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98roleksупрощаю задачу: тут либо цииндр нужен скошенный, либо, чтобы "которые были бы перпендикулярны к вектору линии", то эллипсы на рисунке д.б. повёрнуты по часовой немного. совершенно верно, немного неправильно отобразил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 11:16 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleksупрощаю задачу: есть линия (100,100,100) - (100,1000,100) в в крайних точках необходимо нарисовать круги, которые были бы перпендикулярны к вектору линии пример в картинке прикреплен можно принять что круги нарисованы набором прямых линийНу вот есть (x0,y0,z0) и (x1,y1,z1). Уравнение плоскости, проходящей через (x0,y0,z0) и перпендикулярной этому отрезку: (x-x0)*(x1-x0)+(y-y0)*(y1-y0)+(z-z0)*(z1-z0)=0 Сфера с центром в (x0,y0,z0) радиуса R: (x-x0)^2+(y-y0)^2+(z-z0)^2=R^2. Пересечение сферы и плоскости дает нужную окружность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 11:23 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98Да хоть на ассемблере, посмотрите профиль ТСа, и степень разумности бывает разная, иногда образно доходчивей. от же, а я его к университетскому курсу отправляю, тут же с "Начала" Евклида надо начинать я вот ЧЗ как синусы, косинусы а, возможно, и умножение с делением дистанционно объяснять :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 11:26 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)от же, а я его к университетскому курсу отправляю логичнее к учебнику по OpenGl ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 11:30 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Я бы не спешил, задан вектор, парллельный оси У, если эта ось вдоль высоты монитора, а мы смотрим "из бесконечности", т.е. проекция на монитор параллельна, то основания вырождаются в отрезок. Вводной недостаточно, да и с диагональным расположением на рисунке надо соспоставить. Что есть оси координат по отношению к плоскости монитора, это предполагалось высчитывать из рисунка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 11:30 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleks, нарисуйте что есть и что надо например в экселе/опен офис (см. рисунок) В экселе хотя бы вращать можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 11:48 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:00 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Простите за столь плотное моё присутствие, просто мои мысли - мои скакуны, самому уже мешает, пока выясняется вопрос с системами координат (может всё же рассказать сверхцель всего этого?). Звучал вопрос как часто рисовать палки. С места в карьер тоже можно наткнуться на фичи. Допустим, рисуем равномерно. Где соблюдать равномерность? - на экране - по дуге эллипса - по дуге исходной окружности. Каждый вариант требует отличающихся вычислений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:11 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98, на OpenGl/WebGl/Direct3D - рисовал когда-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:17 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleks, Какой конец трубы к нам ближе нижний или верхний ? (там, где 4 кружочка, рис. в посте [20542505] ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:19 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
я - нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:19 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
1) По поводу Си и алгоритмов. Как я и думал - автору нужен алгоритм + реализация. Голый алгоритм пишется как в умных книжках типа Кормена или Кнута на "птичьем языке". Смесь модулы или АЯ. И я готов спорить на большое количество пива что автору такая форма подачи ничем вообще не поможет. Поэтому я привел фрагмент шаблонного кода на Java. Хотя он очень похож на Си и на С#. 2) В конструкторе я ошибся. Там еще есть радиус. Код: java 1. 2. 3. И можно опционально добавить точность аппроксимации. Пускай это будет количество граней (наподобие правильного многоугольника в качестве образующей). Код: java 1. 2. 3. 3) По поводу OpenGL. Сейчас - пофиг. Потому что у нас нету mesh цилиндра. А когда mesh будет - тогда можно будет ее отрисовать через любую либу как через фасад или адаптер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:25 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Изопропил, это вопрос к ТСу, чем он будет реализовывать алгоритм - до такой степени подробности и опускаться. Пока ничего неизвестно, ведь не просто же рисунок требуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:26 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonИ можно опционально добавить точность аппроксимации. Пускай это будет количество граней mayton, по мне нет разницы в эллипсе или многоуг-ке. Будет уравнение эллипса в экранных к-тах - так какая разница кроме скорости, что проектировать на экран. Нужна красота? В конце понадобится заглушка (матрица) и вектор смещения, чтобы привести наши "исходные" координаты в соответствие с заказчиковыми, и в этом видится проблемка на стороне ТС, возможно вплоть до истечения конечного срока. Сначала допустим, что наши == ТС. Допустим, наши - это поворот экранных на 90 вокруг Х по часовой: Z ---) -Y Y --) Z X --) X где экранные: Z - на нас, (0, 0) в левом верхнем, Y - вниз? Можно для простоты потом параметризовать ур-ние эллипса и сделать шаг равномерным по параметру, а палки рисовать - никакого GL потом не будет нужно. Лично я до сих пор в догадках, для чего и в каком виде автору это нужно, т.к. сначала: дайте алгоритм, а потом: вот вам вертикальное бревно, нужен взгляд на него всегда немного сверху/снизу, вне зависимости от высоты бревна. Ну вот же почти готовое ТЗ. Кто-нить продолжать будет? лично я не буду кодить, формулы если только неспеша изобразить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:05 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98Нужна красота? сетка нужна, а не уравнение. Топикстартер об этом писал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:20 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Предлагаю упростить задачу: есть окружность, заданная центром ( 3Д ) и радиусом построенная по оси х-у также есть 2 точки (линия), одна из которых совпадает с центром окружности. Необходимо повернуть окружность чтоб она стала перпендикулярна линии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:52 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleksПредлагаю упростить задачу: есть окружность, заданная центром ( 3Д ) и радиусом построенная по оси х-у также есть 2 точки (линия), одна из которых совпадает с центром окружности. Необходимо повернуть окружность чтоб она стала перпендикулярна линии. исходная задача несколько понятнее была ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:11 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
да угол же между прямой и плоскостью Рассказать как найти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:20 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98, какой угол и что он даст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:24 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
с той поправкой, что a, b, c уже даны в уравн-ии (1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:50 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
В азарте и забыл, что Т2 есть центр Окр., никаких t не надо, всё проще. Одна ось на новой плоскости - диаметр Окр, к-рый перпендик. прямой Другая ось - перпендик. первой. Обе выходят из центра Окр. Вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 16:17 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98maytonИ можно опционально добавить точность аппроксимации. Пускай это будет количество граней mayton, по мне нет разницы в эллипсе или многоуг-ке. Будет уравнение эллипса в экранных к-тах - так какая разница кроме скорости, что проектировать на экран. Нужна красота? В конце понадобится заглушка (матрица) и вектор смещения, чтобы привести наши "исходные" координаты в соответствие с заказчиковыми, и в этом видится проблемка на стороне ТС, возможно вплоть до истечения конечного срока. Сначала допустим, что наши == ТС. Допустим, наши - это поворот экранных на 90 вокруг Х по часовой: Z ---) -Y Y --) Z X --) X где экранные: Z - на нас, (0, 0) в левом верхнем, Y - вниз? Можно для простоты потом параметризовать ур-ние эллипса и сделать шаг равномерным по параметру, а палки рисовать - никакого GL потом не будет нужно. Лично я до сих пор в догадках, для чего и в каком виде автору это нужно, т.к. сначала: дайте алгоритм, а потом: вот вам вертикальное бревно, нужен взгляд на него всегда немного сверху/снизу, вне зависимости от высоты бревна. Ну вот же почти готовое ТЗ. Кто-нить продолжать будет? лично я не буду кодить, формулы если только неспеша изобразить. Посмотрите на картинку 20542781 которую ТС изобразил. Это-же вырожденный случай. Цилиндр расположен горизонтально. Нет... конечно на формулу это не очень влияет. Просто если нужна диаграмма типа в Excel рисуют. То.. там даже нету перспективы. И освещение там упрощенное. По сути... рисуется контур. И заливается градиентом. Только одно видимое основание - заливается цветом. Тащем-та я вангую что все что мы кодим ТС-у не очень нужно. Да пофиг... Мыже тут - альтруисты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 16:40 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Еще децл кода. Hey, ТС у тебя есть вопросы по коду? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 17:02 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
mayton, это фрагмент моего рисунка, я понял так, что нам пояснялось что надо получить, и я замял вопрос, направление значяения не имело. Зато имело место безразличие к наличию перспективы -- сммотрим всегда из бесконечности. Из этих же соображений в последней постановке оси тоже будут без перспективы, но они и не рисуются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 17:10 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonМы же тут - альтруистыНесмотря на затронутые тайные струны души я не гонюсь за очередным велосипедом и всё это время намекал. Постановка задачи приятнее)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 17:32 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98maytonМы же тут - альтруистыНесмотря на затронутые тайные струны души я не гонюсь за очередным велосипедом и всё это время намекал. Постановка задачи приятнее)) Я тоже никуда не спешу. Я для себя пытаюсь понять границы человеческого любопытства и лени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 17:45 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonПотому что у нас нету mesh цилиндра в исходниках three.js всё есть и достаточно прозрачно https://threejs.org/docs/#api/geometries/CylinderGeometry Код: javascript 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. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 18:42 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Изопропил, я посмотрел исходник поверхностно. Я не знаю что в нем есть. Но я скажу чего в нем нет. В нем нет координат двух центров. Возможно данный нам в использование замечательный исходник на JavaScript является частью более крупного программного продукта где есть стек преобразований типа basic-transforms -> world-transforms. И через basic-transforms мы можем эмулировать 2 центра. Но это все хорошо для программного продукта типа Blender, 3dMax, AutoCad, но для такого мелкого ТЗ как у автора - избыточно ИМХО. Это примерно - как решать школьную задачку о двух сближающихся поездах через диф-уравнения. Вроде-бы и можно ... но школьник не будет впечатлён решением да и избыточно. ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 18:59 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonВ нем нет координат двух центров. Возможно данный нам в использование замечательный исходник на JavaScript является частью более крупного программного продукта где есть стек преобразований типа basic-transforms -> world-transforms. конечно есть полный набоп преобразовании и генерация сеток для базовых фигур. maytonИ через basic-transforms мы можем эмулировать 2 центра. сколько пафоса - длина отрезка интересует - не более. maytonЭто примерно - как решать школьную задачку о двух сближающихся поездах через диф-уравнения задача сетку построить,камеру поставить - озвучена явно, без источника света - скучно это же введение в 3D моделирование, какие к чертям дифуры? не вижу избыточности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 23:11 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Изопропилзадача сетку построить,камеру поставить - озвучена явно, без источника света - скучно это же введение в 3D моделирование, какие к чертям дифуры? не вижу избыточности. Где камера? Автор вроде не говорил ничего о камерах? Давайте хоть сетку построим. А этот javascript-исходник ... он что на выходе дает? Я так и не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 23:34 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98roleks, я ожидал подобный вопрос. Плоскость, перпенд-я прямой, можно задать уравнением (1) 0 = х /(x2-х1) + y /(y2-y1) +z /(z2-z1), в к-ром коэфф-ты abc можно найти, потребовав пересечения с плоскостью окр-сти. В этом случаче с координатной плоскостью (ХУ) То есть z=0 прямая, заданная парой точек T1/2= (х1/2, y1/2, z1/2), пересекает плоскость, в к-рой лежит Окр(х0, у0, R), в некой точке T3=(х3, у3, z3) = T1 +t*(T2-T1) (2) Далее можно тупо найти косинус нужного угла и спроектировать диаметры окружности, параллельный и перпенд-й прямой, являющейся пересечением 2-х плоскостей. Получим ур-ие эллипса по его полуосям, одна из к-рых == 2R. А можно по прямой пересечения плоск-й достроить ось координат, найти м-цу M преобразования коорд-т и тогда по любой точке круга можно вычислить коорд-ты её проекции. За мелкие неточности ссори. для того чтоб построить матрицу преобразования, необходима еще 1 ось. ГШде ее взять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 23:47 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
как найти недостающий мне вектор PU ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 23:50 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
ссылка не вставилась ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 23:51 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Пыщ. Код: java 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 00:06 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonА этот javascript-исходник ... он что на выходе дает? Я так и не понял. mesh-объект maytonГде камера? Автор вроде не говорил ничего о камерах? суслика видишь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 00:23 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
ИзопропилmaytonА этот javascript-исходник ... он что на выходе дает? Я так и не понял. mesh-объект maytonГде камера? Автор вроде не говорил ничего о камерах? суслика видишь? Ладно. Не получается у нас сегодня диалог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 00:33 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 00:36 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
maytonЛадно. Не получается у нас сегодня диалог. это не страшно, на след день продолжим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 00:36 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
roleksдля того чтоб построить матрицу преобразования, необходима еще 1 ось. ГШде ее взять? А ось цилиндра? она перпендик-на новой плоскости. Мне очень стыдно за вчерашний поток сознания, пост [20543812] в топку, щас исправлю, а потом схожу застрелиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 09:25 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Вместо поста [20543812] Плоскость, перпенд-я прямой, можно задать уравнением (1) 0 = (х-x0)*(x1-х0) + (y-y0)*(y1-y0) + (z-z0)*(z1-z0), где прямая, заданная парой точек T1= (х1, y1, z1) и T0(х0, у0, z0) пересекает плоскость, в к-рой лежит Окр(х0, у0, z0, R), По прямой пересечения плоск-й достроить ось координат, найти м-цу M преобразования коорд-т и тогда по любой точке круга можно вычислить коорд-ты её проекции. Но для цилиндра кроме М понадобится ещё и вектор сдвига, имхо. Уравнение (1) выражает факт, что все вектора вида (х-х0, ...) перпендикулярны вектору (х1-х0), что эквивалентно выражению "их скалярное произведение=0". Скалярное же пр-ние вычисляется как сумма парных произвед-й координат, что и написано в (1) - этот текст для контроля. За мелкие неточности ссори. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 09:37 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Изопропил ( сегодня, 00:36 ) на след день продолжим отсыпаются)) Сдаётся мне, что в матлабе это всё есть, а прогать там неимоверно удобней, запись как в екторном, так и в покомпонентном виде и есть интеграция с экселом как он-лайн, так и через АПИ, на днях гляну в своей древней версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 10:29 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
https://jsfiddle.net/t8447wb1/1/ В отладчике все прекрасно видно как работает отображение в функции THREE.CylinderBufferGeometry() рассчитываются вершины цилиндра в зависимости от входных параметром в функции renderer.render() идет отображение геометрии на экран (проекция вершин на плоскость) смотри задавай вопросы =). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 14:53 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Со ссылкой на Тяпничный бенчмарк CPU (part-1) Этот-же Vector можно использовать как Point3d и как отрезок в трехмерном пространстве и применять к нему набор операций таких как sum, prod, vector-prod e.t.c. Код: java 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 16:39 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
mayton this.prod(1.0 / sqrt(this.sprod(this))); Где предлагаешь обрабатывать деление на 0 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 17:13 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98roleksдля того чтоб построить матрицу преобразования, необходима еще 1 ось. ГШде ее взять? А ось цилиндра? она перпендик-на новой плоскости имел ввиду исходно заданный отрезок. Длину только сделать =1 и направление , чтобы все оси работали по "правилу буравчика". Ну или векторное произведение 2-х других осей (если опять не спутал) - д.б. тот же результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 17:18 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
exp98mayton this.prod(1.0 / sqrt(this.sprod(this))); Где предлагаешь обрабатывать деление на 0 ? Давай очертим проблему сначала. Пока толком кода нет то и нет проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 17:28 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
А над какой постановкой толком работаешь? по мере запросов ТСа или по своей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 17:32 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Я позволяю потоку сознания течь в произвольном направлении. Собственно как и во всех тяпничных топиках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 17:43 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
цилиндр то нарисовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 22:26 |
|
||
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#18+
Цилиндр рисовать - брызги шампанского нравятся? для получения навыков только если, всё давно придумано, нужны лишь бОльшая доступность и фреймворки. Всё же нулевой вектор является штатной ситуацией, поэтому типа этого Код: java 1. 2. 3. 4. 5. А чтоб теперь неравенство треугольника выполнялось на мелких векторах, как это сейчас делают? сумма нулевых длин == нулевой длине, не в каждой же строке проги проверять, нужно зашить на нижнем уровне. Класс пополнить методом длина вектора, методом или свойством вектор нулевой длины ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 10:10 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1340374]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
150ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
130ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 537ms |

| 0 / 0 |
