|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.10.2012, 18:27 | #1 |
Форумчанин
Регистрация: 30.10.2012
Сообщений: 121
|
Окружность
Функция рисования окружности выглядит следующим образом:
Код:
Вся задача в том, что 360 мало для этого цикла. как определить кол-во точек? есть какая-нибудь формула? думаю тут замешан радиус если окружность радиусом 20, то норм ещё а вот если например радиус задать 150, то видны пропуски. особенно это видно если вызов функции зациклить от 0 до radius и вместо радиуса посылать в функцию i а должна быть закрашенная область... помогите пожалуйста |
31.10.2012, 19:38 | #3 |
Форумчанин
Регистрация: 30.10.2012
Сообщений: 121
|
2*M_PI*radius - длина окружности
теперь круг получается ровный, а если зациклить опять что-то не то |
31.10.2012, 19:44 | #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. |
31.10.2012, 20:38 | #5 |
Форумчанин
Регистрация: 30.10.2012
Сообщений: 121
|
Как рисовать полигонами?
|
31.10.2012, 20:52 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Вот так:
Код:
Упс, а это не тема про OpenGL или типа нее нестандартные библы?
I'm learning to live...
Последний раз редактировалось Stilet; 31.10.2012 в 20:54. |
31.10.2012, 21:19 | #7 |
Форумчанин
Регистрация: 30.10.2012
Сообщений: 121
|
нет, это не опенджель) и кстати мне нужно будет сохранять координаты каждой точки в массив, чтобы потом можно было вычитания, складывания и всякие универсумы делать с двумя окружностями
|
31.10.2012, 21:51 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну сохраняй, в чем проблема?
I'm learning to live...
|
01.11.2012, 10:23 | #9 |
Форумчанин
Регистрация: 17.12.2011
Сообщений: 111
|
Это WinAPI, а не OpenGL
вот только библиотеки "windows.h" не хватает |
01.11.2012, 11:25 | #10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
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 |