|
|
|
Алгоритм рисования цилиндра
|
|||
|---|---|---|---|
|
#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 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39466551&tid=1340374]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
156ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 491ms |

| 0 / 0 |
