Графика, Построить n-угольник и произвести с ним следующие манипуляции |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Графика, Построить n-угольник и произвести с ним следующие манипуляции |
$rvr4vr |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Мужской Реальное имя: Серж Репутация: 0 |
Построить n-угольник и произвести с ним следующие манипуляции:
А. Повернуть на x° по часовой стрелке. В. Масштабировать рисунок в 2, 4, 6, 8 раз. |
volvo |
Сообщение
#2
|
Гость |
Копай в сторону полярной системы координат... Если работать в ней, то первое задание решается банальным увеличением/уменьшением угла для каждой точки, а второе - умножением расстояния от центра на масштаб...
(поиск по форуму может кое-чем помочь, я делал несколько программ, использующих полярную СК) |
$rvr4vr |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Мужской Реальное имя: Серж Репутация: 0 |
не могу врубится как это на мой случай распространить?
|
volvo |
Сообщение
#4
|
Гость |
То есть? Что непонятно? Как именно "создать" N-угольник? Очень просто, центр экрана принимаешь за центр полярной СК, тогда координаты вершин N-угольника будут соответствовать точкам с удалением R (радиус описанной возле многоугольника окружности) от центра, углы - от 0 до 360 с шагом 360/N ... Запоминаешь эти координаты в массив, например:
Var Как отобразить многоугольник? Там, где ты читал про "Строфоиду" есть функция put_polar, так вот почти так же, только надо сначала сделать MoveTo в первую точку многоугольника, а потом LineTo в последующие... Насчет масштабирования и повороты я уже написал выше, что надо делать (для каждой точки)... Что еще непонятно? |
$rvr4vr |
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 51 Пол: Мужской Реальное имя: Серж Репутация: 0 |
то есть за начальную точку возьмем точку на К выше центра потом по окружности расставим точки на углах равные 360/n? верно? тогда центр это (getmaxx div 2) и (getmaxy div 2)? а как будет выглядеть формула поворота курсора на 360/N градусов относительно предыдущей точки и ценра?(извини я может туплю и не догоняю элементарного но я просто запарился с этой сессией уже)
|
volvo |
Сообщение
#6
|
Гость |
Вот так:
uses graph; (не забывай, что вся работа с тригонометрией - через углы в радианах, поэтому присутствует Pi) |
Гость |
Сообщение
#7
|
Гость |
volvo, большое спасибо Вам за то что выложили реализацию задачи.
|
Текстовая версия | 18.09.2024 18:10 |