Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash-арт (http://www.flasher.ru/forum/forumdisplay.php?f=29)
-   -   Посмотрите, если интересен факт создания круга из четырёх кривых Безьё (http://www.flasher.ru/forum/showthread.php?t=57235)

nuran 20.04.2004 07:55

Посмотрите, если интересен факт создания круга из четырёх кривых Безьё
 
Смотреть здесь:
http://www.flash.plux.ru/lab/flash/preview/2dspline/
Если понравится, качать здесь:
http://www.flash.plux.ru/board/viewtopic.php?t=158

Ріxеl 20.04.2004 15:53

факт создания круга кривыми безье не новый и давно и многими реализован, а вот ElasticCircle довольно прикольно и мне понравился.

Techmaker 20.04.2004 16:22

Цитата:

Оригинал написал(а) Ріxеl
а вот ElasticCircle довольно прикольно и мне понравился.
дык это тоже самое, только + 2 минуты импровизации. :)

bunker6 20.04.2004 17:24

это не круг. хотя и похоже.
http://www.bunker6.com/round.gif

Ріxеl 20.04.2004 19:31

Цитата:

Оригинал написал(а) Techmaker

дык это тоже самое, только + 2 минуты импровизации. :)

а что это не может быть прикольно и понравится?? ;)

Ріxеl 20.04.2004 19:44

Цитата:

Оригинал написал(а) bunker6
это не круг. хотя и похоже.
во флэше нельзя програмно нарисовать круг. используя кривые безье радиусы будут не одинаковы, даже если брать их очень много. а действительно похоже на круг и при восьми таких кривых...

Phagot 20.04.2004 20:21

Цитата:

во флэше нельзя програмно нарисовать круг. используя кривые безье радиусы будут не одинаковы
Вполне возможно! И даже восмью кривыми... Нет ну, если брать большие радиусы, то смещение в пару пикселов, конечно, возможно... но кого это интересует!? ;)

А вот и кодик из одного мануала:

function radians(degrees) {
return (Math.PI/180)*degrees;
}
theta = 45;
r = 100;
d = r/Math.cos(radians(0.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);
}

Вполне ровненький круг выдает.

Ріxеl 20.04.2004 21:34

я говорил о геометрически правильном круге. тоесть без смещения на несколько пикселей.
кого это интересует?
бункера. чуть-чуть ;)

nuran 21.04.2004 07:31

Цитата:

Оригинал написал(а) bunker6
это не круг. хотя и похоже.
http://www.bunker6.com/round.gif

:D
Так это, там в коде есть такой коэфициент = 0.4. Если его точно подобрать,то круг получится, ну конечно не с точностью в 1 пиксель, но в два то точно. Самое главное - его нужно правильно подобрать. Я выставил 0.4, но нужно было видимо ещё повозится.

bunker6 21.04.2004 11:53

Цитата:

Оригинал написал(а) Ріxеl
во флэше нельзя програмно нарисовать круг
Цитата:

Оригинал написал(а) Ріxеl
кого это интересует?
бункера. чуть-чуть
ага. не то, чтобы очень. =)
я просто за название вещей своими именами.
этот "круг нурана" очевидно (невооруженными очами видно) — не круглый. можно было бы взять побольше точек(или сделать поменьше размер) — и это было бы кругом.
Цитата:

Оригинал написал(а) Ріxеl
я говорил о геометрически правильном круге
вряд ли имеет смысл говорить о геометрически правильных фигурах в дискретном пространстве. имеет смысл задуматься об абсолютном приближении к идеальному (настолько, насколько это возможно, см. выше) кругу, увеличивая количество точек.
если, конечно, это кому-нибудь надо =)

nuran, а вообще, прикольно.


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

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