![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: 1 Всего: 1 |
Как реализовать функцию, которая выводит на дисплей правильный n-угольник, если n задает юзер?
Просьба поподробней обьяснить плиз --------------------
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
1 нужно расчитать координаты.
как это сделать правильный многоугольник вписываеться в окружность допустим что один угол объязательно будет распологаться на оси х с координатами (r,0) где r - радиус окружности... далее вычисляем угол "смещения по окружности" по формуле 360/n разумееться нужно делать в радианах. создаем цикл i от 1 до n (не от 0, один уго у нас уже есть) и вычисляем координаты следующих вершин по формуле x=r*cos(угол*i) y=r*sin(угол*i) и все полученные пары заносим в массив в той последовательности в которой получали теперь вывод в функции получаем контекст устройсва и делает MoveTo(r,0); потом в цикле от 1 до n делаем LineTo в которую подставляем каждую следующую пару.. и в конце, ну так на всякий случай, делаем lineto(r,0) -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
Step
А если он под дос пишет? Это сообщение отредактировал(а) Дрон - 14.4.2005, 21:30 -------------------- Да. Именно так. |
||||
|
|||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
то загружает драйвер egavga врубает графичиский режим,
и конечно не забывает делать смещения центра координат в центр экрана _Slipknot, вообще можно и подругому, это я так с лету написал, еще можно и угол поворота ввести... -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: 1 Всего: 1 |
Да, мне под дос(С++ 3.1). А какой еще способ, а то этот не полностью понял.
--------------------
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
_Slipknot да в принципе ни какого, а что именно ты не понял
главное расчитать координаты потом поставить курсор в одну из них потом нарисовать линию от курсора к следующей координате и курсор таким образом переместиться в новые координаты и таким образом вы отрисуете все ребра многоугольноика или вам не понятно как вообще с графиками работать -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: 1 Всего: 1 |
Да, впринципе я разобрался. Спасибо!
--------------------
|
|||
|
||||
| Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: 1 Всего: 1 |
Step смотри(и остальные тоже).
Вот так я сделал то, что ты написал:
Короче выводит хрен знает что, еще и вылазит за экран. Вобщем откомиль у себя и посмотри. ЧТО НЕ ТАК Добавлено @ 12:11 И как сделать смещение координат в центр экрана? Наверное из-за него вылазит за экран, но если б не вылазило все равно выводит нето. --------------------
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
1. угол перевести в радианы
2. второй цикл тоже нужнобы сделать от 1, первая точка у тебя задана мовом 3. вместо line сделай просто lineto(x[i],y[i]) начало линии будет точка последнего обращения которая уже заданна командой мове или предыдущем лайнто 4. кстати по идеи после цикла лайнто не нужен но на всякий случай пусть будет, торможу я че то 5. смещение координат, но тут просто во все лайны и мове к аргументам прибавляешь скажем переменную r тогда например одна вершина многоугольника с четным количеством углов будет лежать на левой стороне экрана -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: 1 Всего: 1 |
Как перевести угол в радианы обьясни плиз.
--------------------
|
|||
|
||||
| Step |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
ugol=2*pi/n помоему pi в с++ определено, даст ошибку постаь вместо pi 3.14 кстати ugol сделай флоатовским Добавлено @ 13:10
ugol=2*pi/n помоему pi в с++ определено, даст ошибку постаь вместо pi 3.14 кстати ugol сделай флоатовским -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
||||
|
|||||
| Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: 1 Всего: 1 |
Работает! Спасибо, Step
Это сообщение отредактировал(а) _Slipknot - 20.4.2005, 13:21 --------------------
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
_Slipknot, математику подучите - это основа
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
В Си константа пи это M_PI
-------------------- Да. Именно так. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |