Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   рисуем окружность (http://www.flasher.ru/forum/showthread.php?t=86753)

tryyy 22.10.2006 15:47

рисуем окружность
 
как скриптами нарисовать окружность заданого центра и радиуса?

wvxvw 22.10.2006 16:10

Тебе полностью написать или объяснить хватит? =)
Если объяснить - то читай дальше, если написать - вечером сделаю =)
Итак
Используя MovieClip.curveTo() последовательно рисуем N-ое количество одинаковых кривых соединенных в конечных точках, которые рассчитываем по формуле: X = R*sinά; Y = R*cosά;
Вертексы рассчитываем по формуле: X = X1-R*sinά/2; Y = Y1+R*cosά/2;
ά зависит от того, каким количеством кривых ты будешь рисовать окружность, желательно не меньше 6, а то кривовато выглядеть будет (ά в этом случае будет прибывать по 360/6 = 60);
X и Y самой удаленной от центра окружности точки радиуса, я думаю, сможешь и сам посчитать =)

ЗЫ. Вроде у Гурского как раз такой пример был =)

tryyy 22.10.2006 16:17

Я девочка:) Спасибо, параметрическое задание окружности я знаю, попробую, напишу если проблемы. Спасибо

aksios 22.10.2006 17:06

Ух уж эта геометрия.:rolleyes:
Код:

function radians(degrees) {
        return (Math.PI/180)*degrees;
}
theta = 45;
//радиус:
r=100;
d = r/Math.cos(radians(.5*theta));
this.lineStyle(1, 0x000000, 100);
this.moveTo(r, 0);
for (k=(theta/2); k<361; k=k+theta) {
        xControl = d*Math.cos(radians(k));
        yControl = d*Math.sin(radians(k));
        xAnchor = r*Math.cos(radians(k+(theta/2)));
        yAnchor = r*Math.sin(radians(k+(theta/2)));
        this.curveTo(xControl, yControl, xAnchor, yAnchor);
}
//координаты центра:
this._x = 200
this._y = 200



Часовой пояс GMT +4, время: 09:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.