powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритм рисования цилиндра
25 сообщений из 95, страница 2 из 4
Алгоритм рисования цилиндра
    #39466039
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iobox, в 3D всегда эллипсы, т.к. постановка наверняка подразумевает 2 различные точки. Хотя необязательно.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466053
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я хз, не делал такого.
Но как мне кажется:

по z = 0; x= cos(i) * r; y=sin(i) * r, получаем набор точек с шагом (Pi * 2) / n, где n количество точек, берем чётное число
затем копируем точки и задаем для них z, получаем наборы точек для 2ух окружностей.
затем соединяем точки парами, берем точку i, i+1, i2 и i2+1 (прямоугольник) и разбиваем его на 2 полигона.
сам я не делал такого, чисто теоритически + еще сверху и снизу треугольники от центра к точкам.
тут главное, чтоб вершины полигонов были выстроены в правильном порядке.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466068
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ещё одну подсказку дам.
Допустим, что 2 точки - это настоящая высота цилиндра. В какой именно проекции он должен быть нарисован:
(*) в ортогональной
( ) в иной

В простом случае, отмеченном по умолчанию, необходимо знать угол просмотра (т. зрения). От этого зависит, какой эллипс рисовать и какой длины отрезки будут, а также в каком направлении они будут направлены. И дезавуируя своё предыдущее замечание про "всегда эллипс": если смотреть с торца, то только одну окружность и нарисовать.

Ждём-с дальнейшей постановки и, наконец, эскиза от руки.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466074
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes, это сферический цилиндр в вакууме. Для расчёта "базовых" точек всё это похоже на правду, но автору это всё нужно куда-то спроектировать.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466151
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesНо как мне кажется Первое, что я опробовал на ЯВУ на i8086 -- это вращать цилиндр, контур только, со скрытием невидимой части основания простой перерисовкой бесцветным параллелограммом (проекция параллельными прямыми). Даже сейчас помню, потому и придираюсь к ТС.

Что до дилеммы, посоветовать не могу: хранить ли точки "сферического" цилиндра, к-рые затем преобразовать, или зная формулу преобразования, геометрический "состав изделия", фактуру поверхности, модель света и его отражения, делать это на лету. В конце концов, есть же графические примитивы.
Всем успехов!
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466205
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я рисовал 3D tor на Borland Pascal в VGA-mode. С Z-буфером и освещением.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466209
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так топикстартеру - нарисовать нужно или триангуляцию сделать?
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466210
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное нам надо прекратить пытки автора. Он сам не знает как ему надо сделать.

Самый простой вариант - ортогональная проекция цилиндра на плоскость XY.
Орт Z игнорируется и рассматривается как глубина экрана.

Правда здесь нужно решить еще одну мелкую проблемку о которой все забывают.
Перевод из мировых координат в экранные. Например цилиндр задан центрами
в (0,0,0), (-3000,-3000,-3000), а экран у нас (стандартный ноутбучный) 1280x720 pix
то соотв мы должны масштабировать хотя-бы более чем в 0.5 раз и двигать центр мировых
координат чтобы цилиндр занял хотя-бы "приличное" положение от наблюдателя
а не в отрицательном квадранте.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466212
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПравда здесь нужно решить еще одну мелкую проблемку о которой все забывают.
не ищи под фонарём проблему - её здесь нет
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466228
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ммм.. срачь получается.

Ну оки. Давайте так. В режиме концепта. Ни слова больше. Только код.

Я начинаю.

Код: 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.
class Point3D {
    
    public final double x,y,z;

    Point3D(double x, double y, double z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }
}

abstract class Figure {
    // .... 
}

class Cylinder extends Figure{
    
    public Cylinder(Point3D center1,Point3D center2,double height){
        // .....
    }
        
}

public class Main {
    
    public static void main(String[] args){
        // Init Cylinder object
        Cylinder cylinder = new Cylinder(new Point3D(0.0,0.0,0.0),new Point3D(-3000.0,-2000.0,-5000.0),8000.0);
        // Write mesh to STDOUT like a Point3d list
        
    }

}
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466338
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малыхин Сергей1. Цилинд это две одинаковые окружности
2. для того что бы отобразить проекцию окружности на плоскость(экран) используют матрицу трансформации(перехода).
т.е. каждую вершину фигуры(в данном случае окружности) перемножают на матрицу трансформации
в результате получают координаты точек фигуры относительно экрана.
3. после того как известны координаты всех точек точек остается отобразить их на экране. Ну и соединить точки линиями.

гуглим матчасть типа вот этой , вспоминаем линейку и вперёд
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466470
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столько желающих ответить, не спят, бьют копытом, а ТС как гордая птица.
mayton,
вряд ли Си нужен, заказ на алгоритм был, но степень детализации алгоритма не заявлена. Для каких целей, ещё бы знать ...

Давно уже в школе стереометрию не дают. В принципе ТС не обязан был знать 3Д или благополучно забыть. Там все страхи от надобности создать 3Д-матрицу преобразования, например из углов Эйлера, и как ею пользоваться. Попутно научиться по вектору находить перпендикулярную плоскость. Не зная этого, и разбираться конечно нелегко, я понимаю.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466476
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98mayton,
вряд ли Си нужен, заказ на алгоритм был,
1) где ты Си увидел?
2) алгоритм разумно излагать на каком либо языке программирования
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466519
roleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упрощаю задачу:
есть линия (100,100,100) - (100,1000,100)
в в крайних точках необходимо нарисовать круги, которые были бы перпендикулярны к вектору линии
пример в картинке прикреплен
можно принять что круги нарисованы набором прямых линий
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466523
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Об этом разговор разве?
Усмотрел в регистрозависимости, но если окажется явой, та же хрень, стреляться не буду)
Да хоть на ассемблере, посмотрите профиль ТСа, и степень разумности бывает разная, иногда образно доходчивей.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466530
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roleksупрощаю задачу: тут либо цииндр нужен скошенный,
либо, чтобы "которые были бы перпендикулярны к вектору линии", то эллипсы на рисунке д.б. повёрнуты по часовой немного.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466531
roleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98roleksупрощаю задачу: тут либо цииндр нужен скошенный,
либо, чтобы "которые были бы перпендикулярны к вектору линии", то эллипсы на рисунке д.б. повёрнуты по часовой немного.

совершенно верно, немного неправильно отобразил
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466541
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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. Пересечение сферы и плоскости дает нужную окружность.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466546
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98Да хоть на ассемблере, посмотрите профиль ТСа, и степень разумности бывает разная, иногда образно доходчивей.
от же, а я его к университетскому курсу отправляю, тут же с "Начала" Евклида надо начинать

я вот ЧЗ как синусы, косинусы а, возможно, и умножение с делением дистанционно объяснять :-(
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466551
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)от же, а я его к университетскому курсу отправляю
логичнее к учебнику по OpenGl
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466553
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы не спешил, задан вектор, парллельный оси У, если эта ось вдоль высоты монитора, а мы смотрим "из бесконечности", т.е. проекция на монитор параллельна, то основания вырождаются в отрезок. Вводной недостаточно, да и с диагональным расположением на рисунке надо соспоставить.

Что есть оси координат по отношению к плоскости монитора, это предполагалось высчитывать из рисунка?
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466579
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roleks,
нарисуйте что есть и что надо например в экселе/опен офис (см. рисунок)
В экселе хотя бы вращать можно.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466592
roleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98,
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466606
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите за столь плотное моё присутствие, просто мои мысли - мои скакуны, самому уже мешает, пока выясняется вопрос с системами координат (может всё же рассказать сверхцель всего этого?).
Звучал вопрос как часто рисовать палки. С места в карьер тоже можно наткнуться на фичи.

Допустим, рисуем равномерно.
Где соблюдать равномерность?
- на экране
- по дуге эллипса
- по дуге исходной окружности.
Каждый вариант требует отличающихся вычислений.
...
Рейтинг: 0 / 0
Алгоритм рисования цилиндра
    #39466612
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98,

на OpenGl/WebGl/Direct3D - рисовал когда-нибудь?
...
Рейтинг: 0 / 0
25 сообщений из 95, страница 2 из 4
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритм рисования цилиндра
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]