Страницы: 1

Ответить
RSS
Формирование тел вращения - реализация алгоритма на OpenGl.
 
Формирование тел вращения - реализация алгоритма на OpenGl.

Один из способов формирования сложных объемных изображений на экране - применение скелетных тел вращения. В этом уроке мы реализуем построение тела вращения (3Dвизуализация), а также разными методами визуализируем созданное тело вращения (GL_POINTS, GL_LINES, GL_QUADS).
information must be free for all
 
забыл подключить пространство имён ) // для работы с библиотекой OpenGL
using Tao.OpenGl;
// для работы с библиотекой FreeGLUT
using Tao.FreeGlut;
// для работы с элементом управления SimpleOpenGLControl
using Tao.Platform.Windows;


 
Черный остаётся и всё AnT, ничего не показывает, вроде всё нормально сделал
Вот всё сверил с твоим скачанным от и до и код и все элементы со свойствами, вообще всё совпадает! ))) но у меня черный Ант а у тебя картнки ))
Вообще не пойму в чем дело, у меня VS 2010
 
Цитата
releyshic пишет:
Черный остаётся и всё AnT, ничего не показывает, вроде всё нормально сделал
Вот всё сверил с твоим скачанным от и до и код и все элементы со свойствами, вообще всё совпадает! ))) но у меня черный Ант а у тебя картнки ))
Вообще не пойму в чем дело, у меня VS 2010
причём копирую код Form1 целиком из твоего файла котрый работает и вставляю в свой и тоже самое! черный АнТ и все
http://файлообменник.рф/ue986q01xcgm.html
 
releyshic, это первый урок, который ты попытался воспроизвести с TaoFramework на VS 2010, или другие нормально работали?
 
releyshic, последовательно пробовал выполнить уроки 4.3, 4.4 (в 4.4. пачка примечаний в конце)?
Изменено: noname - 17 Сентября 2015 17:30:01
 
Цитата
noname пишет:
releyshic , последовательно пробовал выполнить уроки 4.3, 4.4 (в 4.4. пачка примечаний в конце)?
4 весь работает в том то и дело и без проблем, хотя я запихнул АнТ в дочернее окно МДИ, всё запускается каждое окно открывается ,но когда в нём нажимаешь Развернуть окно или Свернуть (стандартные кнопки в правом верхнем углу) то тоже черный экран, пробовал в обработчик сворачивания/разворачивания  запихивать
// возвращаем сохраненную матрицу Gl.glPopMatrix(); // завершаем рисование Gl.glFlush(); // обновляем элемент AnT AnT.Invalidate();  и никаких изменений нет ))
 
releyshic,а если добавить кнопку на форму, которая будет вызывать функцию отрисовки? И потом нажать на кнопку - перерисуется черное поле?
 
на скриншоте вверху (в тексте урока) счетчик с параметром enabled = false
именно этот счетчик дергает функцию отрисовки. возможно он у вас false (не включен)
Изменено: noname - 18 Сентября 2015 13:59:34
 
Цитата
noname пишет:
на скриншоте вверху (в тексте урока) счетчик с параметром enabled = false
именно этот счетчик дергает функцию отрисовки. возможно он у вас false (не включен)
так и стоит )
 
Цитата
noname пишет:
releyshic ,а если добавить кнопку на форму, которая будет вызывать функцию отрисовки? И потом нажать на кнопку - перерисуется черное поле?
функция отрисовки это : // возвращаем сохраненную матрицу Gl.glPopMatrix(); // завершаем рисование Gl.glFlush(); // обновляем элемент AnT AnT.Invalidate(); ???
 
Цитата
releyshic написал:
так и стоит )

просто надо переключить его в [COLOR=#333333] enabled = true и должно заработать (если для таймера создано событие и прописана функция в это событие для перерисовки окна).[/COLOR]
 
Цитата
noname пишет:
Цитата
releyshic написал:
так и стоит )
просто надо переключить его в [COLOR=#333333] enabled = true и должно заработать (если для таймера создано событие и прописана функция в это событие для перерисовки окна).[/COLOR]
сделал тру, теперь АнТа как будто вообще нет - цвет фона окна на его месте
 
Цитата
releyshic пишет:
Цитата
noname пишет:
Цитата
releyshic написал:
так и стоит )
просто надо переключить его в [COLOR=#333333] enabled = true и должно заработать (если для таймера создано событие и прописана функция в это событие для перерисовки окна).[/COLOR]
сделал тру, теперь АнТа как будто вообще нет - цвет фона окна на его месте
Цитата
noname пишет:
Цитата
releyshic написал:
так и стоит )
просто надо переключить его в [COLOR=#333333] enabled = true и должно заработать (если для таймера создано событие и прописана функция в это событие для перерисовки окна).[/COLOR]
дело и правда в таймере или в том что надо как то при каждом счете таймера чтото обновлять или чтото подобное делать
запихнул внутрь таймера Рисование сферы и тоже самое - черный экран. запихнул в кнопку, закоментал всё остальное - всё работает с кнопки
удалил из таймера функцию draw и с кнопки тоже перестало работать
 
releyshic,тут простой принцип:

1. есть функция визуализации сцены. в ней происходит рисование.
2. есть таймер, он размещается на форме. Ему создается событие, которые вызывается при очередном тике таймера (создается на вкладке событий таймера). В функции, которая обрабатывает тик таймера (она появляется в коде при добавлении события на тик таймера), вызывается функция отрисовки (визуализации).
3. таймер должен быть включен.

при запуске приложения таймер начинает каждые 30 мс вызывать функцию визуализации сцены - и мы видим на форме нашу нарисованную сцену. т.е. примерно с 33fps
Изменено: noname - 19 Сентября 2015 22:52:47
 
Цитата
noname написал:
на скриншоте вверху (в тексте урока) счетчик с параметром enabled = false
Добавил информацию в текст урока.
information must be free for all
 
Цитата
noname пишет:
releyshic ,тут простой принцип:

1. есть функция визуализации сцены. в ней происходит рисование.
2. есть таймер, он размещается на форме. Ему создается событие, которые вызывается при очередном тике таймера (создается на вкладке событий таймера). В функции, которая обрабатывает тик таймера (она появляется в коде при добавлении события на тик таймера), вызывается функция отрисовки (визуализации).
3. таймер должен быть включен.

при запуске приложения таймер начинает каждые 30 мс вызывать функцию визуализации сцены - и мы видим на форме нашу нарисованную сцену. т.е. примерно с 33fps
ты не понял - это всё при ВКЛЮЧЕННОМ таймере НЕ работает
 
Цитата
releyshic пишет:
Цитата
releyshic пишет:
Цитата
noname пишет:
Цитата
releyshic написал:
так и стоит )
просто надо переключить его в [COLOR=#333333] enabled = true и должно заработать (если для таймера создано событие и прописана функция в это событие для перерисовки окна).[/COLOR]
сделал тру, теперь АнТа как будто вообще нет - цвет фона окна на его месте
Цитата
noname пишет:
Цитата
releyshic написал:
так и стоит )
просто надо переключить его в [COLOR=#333333] enabled = true и должно заработать (если для таймера создано событие и прописана функция в это событие для перерисовки окна).[/COLOR]
дело и правда в таймере или в том что надо как то при каждом счете таймера чтото обновлять или чтото подобное делать
запихнул внутрь таймера Рисование сферы и тоже самое - черный экран. запихнул в кнопку, закоментал всё остальное - всё работает с кнопки
удалил из таймера функцию draw и с кнопки тоже перестало работать
это всё при ВКЛЮЧЕННОМ таймере НЕ работает
 
Цитата
releyshic написал:
это всё при ВКЛЮЧЕННОМ таймере НЕ работает

Цитата
releyshic написал:
запихнул в кнопку, закоментал всё остальное - всё работает с кнопки

событие таймера отрабатывает в коде? оно создано через вкладку events при выборе таймера? есть функция, код в которой можно проверить отладчиком, или на крайняк через MessageBox.Show?

надо функцию отрисовки выделить в отдельную функцию, допустим DrawScene().
затем повесить вызов этой функции на кнопку. проверить, что нажатие на кнопку рисует сцену. затем добавить вызов функции в функцию обработчик тика таймера.

подозреваю, что функция для обработки события таймера создана руками или копипастом, а не через вкладку event таймера
Изменено: noname - 20 Сентября 2015 19:48:58
 
Посмотрел ваш проект.

Цитата
releyshic написал:
это всё при ВКЛЮЧЕННОМ таймере НЕ работает
у вас отсутствует событие на Load у формы.

Т.е. функция в коде Form1_Load имеется, и в ней проходит инициализация, но функция не вызывается при запуске приложения.

Как должно быть:



Ну и в самом начале был таймер выключен. Т.е. проблемы было 2.
information must be free for all
 
Цитата
noname пишет:
Цитата
releyshic написал:
это всё при ВКЛЮЧЕННОМ таймере НЕ работает
Цитата
releyshic написал:
запихнул в кнопку, закоментал всё остальное - всё работает с кнопки
событие таймера отрабатывает в коде? оно создано через вкладку events при выборе таймера? есть функция, код в которой можно проверить отладчиком, или на крайняк через MessageBox.Show?

надо функцию отрисовки выделить в отдельную функцию, допустим DrawScene().
затем повесить вывод этой функции на кнопку. проверить, что нажатие на кнопку рисует сцену. затем добавить вызов функции в функцию обработчик тика таймера.

подозреваю, что функция для обработки события таймера создана руками или копипастом, а не через вкладку event таймера
функция создана двойным щелчком по таймеру в конструкторе окна
"надо функцию отрисовки выделить в отдельную функцию" это откуда до куда? она же вроде и так есть
// функция отрисовки сцены private void Draw() {

Удалил  её вызов из Таймера и добавил в кнопку - черный АнТ, при нажатии на кнопку ничего не происходит
 
releyshic, смотрите ответ выше
information must be free for all
 
Цитата
admin пишет:
releyshic , смотрите ответ выше
Спасибо! И правда как блин не заметил, Вообще я думал что если в коде обработчик есть то он работать будет, а тут вот оно как
 
Цитата
admin написал:
Т.е. функция в коде Form1_Load имеется, и в ней проходит инициализация, но функция не вызывается при запуске приложения.
Спасибо. Тоже помогло
Страницы: 1

Ответить
Читают тему (гостей: 1)
Форма ответов
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Загрузить картинки
Отправить Отменить
 
^
Регистрация
Регистрируясь, вы принимаете правила сайта. Если вы не получили код подтв. регистрации - не забудьте проверить папку спам.
Логин*
Email*
Пароль*
Подтверждение пароля*
 
Логин*
Код*
 
×
Восстановление пароля
Пожалуйста, заполните поля, после чего вы получите код подтверждения на ваш Email. Если код не пришел в течении нескольких минут - проверьте папку спам.
Логин

или Email
Логин*
Код подтверждения*
Новый пароль*
Подтверждение пароля*
×
Авторизация
  • Используйте вашу учетную запись на Facebook.com для входа на сайт.
  • Используйте вашу учетную запись VKontakte для входа на сайт.
  • Используйте вашу учетную запись Google для входа на сайт.
Авторизуйтесь с помощью соц. сети или с помощью аккаунта на сайте:
×