PMG
http://forum.pmg.org.ru/

Матрица выдавливания
http://forum.pmg.org.ru/viewtopic.php?f=1&t=8070
Страница 1 из 1

Автор:  lom80 [ 23 мар 2011 15:56 ]
Заголовок сообщения:  Матрица выдавливания

Здравствуйте, помогите пожалуйста. У меня такой вопрос. Я пытаюсь открыть dxf файл в своем приложении. Вот что он пишет о круге:
AcDbCircle
    10
    0.0
    20
    0.0
    30
    -115.0
    40
    76.20967815046531
    210
    0.0
    220
    -1.0
    230
    0.0
Коды 10, 20, 30 это координаты x, y, z центра окружности и 40 - радиус. Получается, что у меня окружность с центром (0, 0, -115). На самом деле, настоящие координаты этой окружности (0, 115, 0). Я так полагаю, что "виноват" в этом вектор выдавливания(Extrusion direction) под кодам 210, 220, 230 (0,-1,0). Не подскажете, что это за вектор, и как его применить, используя OpenGl?

Автор:  MagicWolf [ 24 мар 2011 16:35 ]
Заголовок сообщения:  Re: Матрица выдавливания

Не сталкивался, не знаю. Надо поискать в описании на dxf, или исходник, который оперирует этими кодами.
А так мне кажется вся проблема от того в какую сторону направлены оси, может поэтому миунс на плюс заменен.

Автор:  lom80 [ 25 мар 2011 04:20 ]
Заголовок сообщения:  Re: Матрица выдавливания

Я покопался и нашел вот такую информацию: 210 код - содержит вектор нормали плоскости, другими словами, в нем содержится точка, направление на которую из центра координат, будет перпендикулярно плоскости блока (я так полагаю, к новой плоскости нашего круга). Не подскажите, как зная вектор нормали, найти угол поворота и использовать команду glRotatef? Извините, если что-то не то спрашиваю, просто тема для меня новая, и до меня очень медленно доходит.

Автор:  MagicWolf [ 25 мар 2011 15:43 ]
Заголовок сообщения:  Re: Матрица выдавливания

Да вроде поворот здесь не причем. У каждой грани, а здесь в качестве грани окружность, есть свой вектор нормали. Обычно он привязывается к самой грани, и показывает, где передняя часть грани, а не внутренняя. Или ты думаешь, что вектор нормали задает плоскость, а в этой плоскости находится эта окружность?

Автор:  lom80 [ 25 мар 2011 16:09 ]
Заголовок сообщения:  Re: Матрица выдавливания

Ну вообще я так и считаю. Эту информацию я взял из форумов по автокаду, прикинул на листе бумаги, вроде сходится. Остается правильно повернуть объект. Вот тут у меня мозгов уже не хватает...

Автор:  MagicWolf [ 25 мар 2011 17:14 ]
Заголовок сообщения:  Re: Матрица выдавливания

Если знаешь вокруг чего вращать, на какой угол, и что вращать, тогда нет проблем (http://pmg.org.ru/nehe/nehe09.htm).

Автор:  lom80 [ 28 мар 2011 01:53 ]
Заголовок сообщения:  Re: Матрица выдавливания

Как раз проблема с определением угла. Я могу посчитать угол, на который отклоняется вектор, но как разбить его на составляющие x, y, z?

Автор:  MagicWolf [ 28 мар 2011 10:17 ]
Заголовок сообщения:  Re: Матрица выдавливания

А зачем разбивать? Просто поворот и все. Я бы тебе рекомендовал прочитать 4.8 и 4.9 из книги Эйнджела _pmg.org.ru/ebooks/angel.djvu_. А чтобы полностью разобраться с поворотами добавить еще http://pmg.org.ru/nehe/nehe_camera.htm

Автор:  lom80 [ 28 мар 2011 10:25 ]
Заголовок сообщения:  Re: Матрица выдавливания

Спасибо, буду разбираться

Автор:  MagicWolf [ 28 мар 2011 11:22 ]
Заголовок сообщения:  Re: Матрица выдавливания

И все-таки нормаль, есть нормаль, относительно ее не надо поворачивать. Возможно, просто направление осей в dxf и OpenGL разное.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/