{{notification.text}}

MirGames

13.06.10 03:09
0
Всем здрасти.
Надо создать функцию рисующию в 2D кординатах n-угольник, в параметры которой передается количестово углов и длина от центра построения до каждого угла, точне до одного угла, так как все углы равноудаленны от центра. А возвращать функция должна кординаты X,Y каждой точки n-угольника. Так вот, можете подсказать формулу расчетов этих углов для построения n-угольника? Плз.
#1
Limited Edition
13.06.10 03:13
0
Код
for i := 0 to n-1 do
begin
arr[i].x := sin(360/n*i)*radius;
arr[i].y := cos(360/n*i)*radius;
end;
Отредактировано: 13.06.10 03:24
#3
13.06.10 16:42
0
Цитата
sin(360/n*i)*radius;

Не 360, а 2*pi, это раз, во вторых код заведомо ошибочен: 2*pi/n*i при i от нуля будет на первой же итерации сваливаться с ошибкой деления на ноль.
Отредактировано: 13.06.10 16:43
#4
Limited Edition
13.06.10 17:43
0
Цитата(Woolf @ Сегодня, 14:42)
[snapback]103910[/snapback]
2*pi/n*i при i от нуля будет на первой же итерации сваливаться с ошибкой деления на ноль.

O'rly?
#5
niello
13.06.10 17:52
0
Должно работать sin(0)=0.
#6
13.06.10 19:26
0
Woolf - прав, если вместо 360 ставить 2*пи то точки равноудаленны друг от друга.
СПАСИБО ВСЕМ ЗА ПОМОЩЬ!!!
И еще вопрос, а откуда вы эти формулы знаете? Есть книга какая-нибудь или мануал, или гайд подробные, будтье любезны послать меня в нужном нарпавление.
Отредактировано: 13.06.10 19:27
#7
13.06.10 19:48
0
Цитата(Woolf @ Сегодня, 08:42)
[snapback]103910[/snapback]
Не 360, а 2*pi, это раз

Это да, т.к. в тригонометрии углы принято вроде в радианах задавать :)

Цитата(Woolf @ Сегодня, 08:42)
[snapback]103910[/snapback]
: 2*pi/n*i при i от нуля будет на первой же итерации сваливаться с ошибкой деления на ноль

А это нет. В данном случае операции выполнятся слева направо, поэтому никакой ошибки не будет.

Цитата(cibermind @ Сегодня, 11:26)
[snapback]103913[/snapback]
И еще вопрос, а откуда вы эти формулы знаете? Есть книга какая-нибудь или мануал

В школе что ль не учился? :). Тригонометрия. Любой учебник по алгебре за старшие классы.
#8
14.06.10 18:54
0
Цитата
O'rly?

Да уж ) Ступил сам ))

Но в таком случае всё таки лучше выражение 2*pi/n*i лучше записать i*2*pi/n Так вроде нагляднее.
Отредактировано: 14.06.10 18:55
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}