![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 30.10.2012
Сообщений: 121
|
![]()
Функция рисования окружности выглядит следующим образом:
Код:
Вся задача в том, что 360 мало для этого цикла. как определить кол-во точек? есть какая-нибудь формула? думаю тут замешан радиус ![]() если окружность радиусом 20, то норм ещё ![]() а вот если например радиус задать 150, то видны пропуски. ![]() особенно это видно если вызов функции зациклить от 0 до radius и вместо радиуса посылать в функцию i ![]() а должна быть закрашенная область... помогите пожалуйста ![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 30.10.2012
Сообщений: 121
|
![]()
2*M_PI*radius - длина окружности
теперь круг получается ровный, а если зациклить опять что-то не то ![]() ![]() |
![]() |
![]() |
![]() |
#4 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2Murashov
1. sin и cos принимают значения в радианах. 2. рисуй не точки, а полигон. пс. зачем ты вообще пытаешься "залить" окружность, рисуя кучу более мелких окружностей?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 31.10.2012 в 19:47. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 30.10.2012
Сообщений: 121
|
![]()
Как рисовать полигонами?
|
![]() |
![]() |
![]() |
#6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Вот так:
Код:
Упс, а это не тема про OpenGL или типа нее нестандартные библы?
I'm learning to live...
Последний раз редактировалось Stilet; 31.10.2012 в 20:54. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 30.10.2012
Сообщений: 121
|
![]()
нет, это не опенджель) и кстати мне нужно будет сохранять координаты каждой точки в массив, чтобы потом можно было вычитания, складывания и всякие универсумы делать с двумя окружностями
|
![]() |
![]() |
![]() |
#8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ну сохраняй, в чем проблема?
I'm learning to live...
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 17.12.2011
Сообщений: 111
|
![]()
Это WinAPI, а не OpenGL
вот только библиотеки "windows.h" не хватает ![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
1. Если можно использовать линии, а не точки, то пропусков не будет, а вместо окружности просто получится многоугольник
2. Если всё же нужно рисовать точками, тогда нужно подходить к задаче с другой стороны. В рисовании используется два типа координат мировые и экранные. Сейчас рисование идёт от мировых координат и проецируется на экранные. Получаем, что разрешение экрана выше предусмотренного и имеем такую фигню. Нужно брать экранные координаты по оси x, например, и на основании их высчитывать точку по оси y. Смещать координату х на 1 пиксель и таким образом получим подстраивание детализации картинки под разрешение экрана. ЗЫ. Мировые координаты тут: cos(i)*radius и sin(i)*radius Экранные: x-cos(i)*radius и y+sin(i)*radius Если нужно залить окружность, тогда можно написать функцию определения входит ли пиксель в окружность и обходить так попиксельно прямоугольную область, в которую вписана нужная нам окружность |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Окружность | Ins1De | Общие вопросы C/C++ | 2 | 29.11.2011 12:15 |
окружность кольца | tcjkjl | Помощь студентам | 3 | 05.11.2011 10:36 |
окружность | MetR | Помощь студентам | 1 | 08.01.2011 13:05 |
Пунктирная окружность | Гамбит | Помощь студентам | 3 | 13.03.2010 14:39 |
Окружность.. | surovii | Помощь студентам | 28 | 29.03.2009 18:00 |