Модераторы: Rickert

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> преобразование фигур 
:(
    Опции темы
Reptor
Дата 9.12.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



mes, да вот в том то и дело что не может. Мне совсем не понятно почему так.  smile   Но что есть то есть просто выполнил код и зделал скриншот резкльтата. 
PM MAIL ICQ   Вверх
Gongex
Дата 2.1.2008, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: нет
Всего: 0



делал на днях трехмерный куб,вращающийся...Сначала сделал 4 точки,потом соединил линиями,и начал двигать их.Получилась плоскость,а сделать из 4-х точек куб,это так:

если у тебя есть x(1,2,3,4)   и    y(1,2,3,4) и плоскость которая "лежит на столе":

 ddx = qx(2) - qx(3) + qx(3) - qx(1)
 ddy = qy(2) - qy(3) + qy(3) - qy(1)

ddx это ровная "высота"от х1 и х2

линии вниз
Line (x(3) - ddx, y(3) + ddy)-(x(3) , y(3) )
Line (x(1)  - ddx, y(1) + ddy)-(x(1) , y(1) )
Line (x(2) - ddx, y(2)  + ddy)-(x(2) , y(2) )
Line (x(4) - ddx, y(4)  + ddy)-(x(4) , y(4) )

вторая спроецированная плоскость
Line (x(3) - ddx, y(3)  + ddy)-(x(1)  - ddx, y(1) + ddy)
Line (x(1)  - ddx, y(1)  + ddy)-(x(2)  - ddx, y(2)  + ddy)
Line (x(2) - ddx, y(2)  + ddy)-(x(4)  - ddx, y(4) + ddy)
Line (x(4)  - ddx, y(4)  + ddy)-(x(3)  - ddx, y(3) + ddy)

извини это при условии что известны 4 точки,

4 точки расположены так:вверху слева х1 справа х2,внизу слева х3,справа х4

если у тебя прога на vb давай код я спроецирую

Это сообщение отредактировал(а) Gongex - 2.1.2008, 21:28
PM MAIL   Вверх
Gongex
Дата 2.1.2008, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: нет
Всего: 0



вот вычисления чтобы из двух точек получить квадрат:

Код

Private Sub Form_Load()
x(1) = 4000
x(2) = 6000
y(1) = 5000
y(2) = 5000

b(1) = 2
b(5) = 2
b(2) = 1 ' это направление смещения точек
b(6) = 1


от таймера:

Cls

это эффект жвижения квадрата

Код

If b(1) = 1 Then x(1) = x(1) - 65
If b(1) = 2 Then x(1) = x(1) + 65
If x(1) < 4000 Then b(1) = 2
If x(1) > 6000 Then b(1) = 1

If b(2) = 1 Then x(2) = x(2) - 65
If b(2) = 2 Then x(2) = x(2) + 65
If x(2) < 4000 Then b(2) = 2
If x(2) > 6000 Then b(2) = 1

If b(5) = 1 Then y(1) = y(1) - 65
If b(5) = 2 Then y(1) = y(1) + 65
If y(1) < 4000 Then b(5) = 2
If y(1) > 6000 Then b(5) = 1

If b(6) = 1 Then y(2) = y(2) - 65
If b(6) = 2 Then y(2) = y(2) + 65
If y(2) < 4000 Then b(6) = 2
If y(2) > 6000 Then b(6) = 1

получаем остальные две точки:

Line (x(1), y(1))-(x(2), y(2)) это известно

x(3) = x(1) + y(1) - y(2)    игреки к иксу
y(3) = y(1) + x(2) - x(1)  а иксы к игреку

Line (x(1), y(1))-(x(3), y(3))

x(4) = x(2) + y(1) - y(2)
y(4) = y(2) + x(2) - x(1)

Line (x(2), y(2))-(x(4), y(4))


потом эти х1 и х2 крути как хочешь,куб должен быть ровным

Добавлено @ 23:45
Цитата(DragonFire @ 20.11.2007,  22:06)
(1.0, 1.0, 0);
   glVertex3f(-1.0, 1.0, 0);
   glVertex3f(-1.0, -1.0, 0);
   glVertex3f(1.0, -1.0, 0);
 glEnd;

 glColor3f (0.0, 0.0, 0.0);          //Текущий цвет примитивов
 glBegin (GL_LINE_STRIP);            //Рисуем линии
  glVertex3f(-0.5,-0.5,0);
 

у DragonFire такой код длиннющий,уверен все можно сделать 10-ю строками

Gongex, 
M
arilou
используйте тэги форматирования кода


Это сообщение отредактировал(а) arilou - 11.1.2008, 13:00
PM MAIL   Вверх
DragonFire
Дата 10.1.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: 5
Всего: 9



Gongex, 
Процедуру рисования возможно и можно упросить, только вот код не для оптимизированного движка выкладывался а как наглядный пример, насколько я помню) 


--------------------
PM MAIL ICQ   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.