![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
Piff |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.3.2009 Репутация: нет Всего: нет |
Помогите пожалуйста решить вопрос с написанием программы для университета. Нужно в OpenGL на С++ написать моё имя при помощи функции GL_POINTS. Я так понимаю, что даная функция выводит только лишь точки, координаты которых я сам и задаю. Но вот как сделать имя? Помогите написать только имя, остальное я сам допишу.
Так же, подскажите, как нарисовать простые фигуры, такие как: круг, звезда, треугольник и трапеция. Спасибо большое за помощь. Я уже написал основу для программы:
|
|||
|
||||
LeonidPr |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
ну и так далее, набирая из точек все что угодно. Хотя лучше наверное будет линиями это сделать. Точки разрозненно будут выглядеть. Умея рисовать точки, вы можете набрать ими все что вам угодно. Просто подставляйте нужные координаты. А фигуры то же рисуются по координатам углов.
Это треугольник. дальше думаю сами сделаете. Вспомните как в школе на Бейсике рисовали, тут почти что так же, можете взять листочек с карандашом и сначала расставить координаты точек для нужной вам фигуры, а потом запихать их в glVertex. Добавлено через 7 минут и 1 секунду P.S.Давно в OpenGL ничего не делал. пример с треугольником компактнее будет сделать через GL_LINE_STRIP. Это сообщение отредактировал(а) LeonidPr - 7.9.2012, 07:52 --------------------
pkunzip.zip |
||||
|
|||||
Piff |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.3.2009 Репутация: нет Всего: нет |
Так это было бы легко, нам нужно только точки использовать и сделать прямую из точек пр помощи алгоритма Брезенхэма. Я не знаю как его реализовать в OpenGL. Хотя я пытался через цикл выкрутиться, программа вообще не показывает точки :(
|
|||
|
||||
LeonidPr |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Так, вопрос: вам в задании сказано OpenGL использовать, или это вы сами решили? Просто имхо, это извращение - реализовывать алгоритм Брезенхэма в OpenGL. Просто в окошке с использованием GDI я еще понимаю.
А вообще какая разница, как рисовать точку. Сделайте функцию DrawPoint(float x, float y). И при реализации алгоритма рисования линии когда нужно поставить пиксел, вызывайте эту функцию с нужными координатами. --------------------
pkunzip.zip |
|||
|
||||
Piff |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.3.2009 Репутация: нет Всего: нет |
В задании сказано. Я учусь в университете в США. Вот так нас тут гоняют
![]() Я пытался через for выкрутится, не работает :( for (int i=-0.85; i=0.85; i+=0.01) glVertex2f(i, 0); glVertex2f(0, i); Но он почему-то не рисует. Почему делаю 0.01, так как у меня окно 1000 на 1000, но точка с координатой 1, 1 вылезает за окно. Работаю с тысячными, не знаю поему. Помогите пожалуйста реализовать этот алгоритм. Вот он есть на С++, но как переделать его???
|
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
int i =-0.85 -- это очень херовая идея. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 5 Всего: 459 |
Не знаю можно ли вам так делать, но я бы отренедерил текст на битмапе средствами GDI, затем прошелся по массиву пикселей битмапа и там где цвет пикселя отличается от белого поставил бы соответствующую точку.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Piff |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.3.2009 Репутация: нет Всего: нет |
Так кто-нибудь может помочь переписать алгоритм с С++ на OpenGL?
|
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 2 Всего: 17 |
Так а в чем проблема я так и не понял? Устанавливаешь ортографическую проекцию в координатах окна (left = 0, right = width, bottom = 0, top = height) и рисуешь точки в этих координатах, словно у тебя GDI какой-нибудь.
|
|||
|
||||
LeonidPr |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Я же написал про функцию DrawPoint(float x, float y). В вашем коде её роль выполняет SetPixel.
Попробуйте! --------------------
pkunzip.zip |
|||
|
||||
Piff |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.3.2009 Репутация: нет Всего: нет |
Я в СИ почти не разбираюсь. Вы не могли бы с кодом подсказать, пожалуйста?
|
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |