![]() |
[MX] Западло curveTo()
Вложений: 1
Вот функция:
Код:
Судя по всему, кривые реализованы как-то неправильно, поэтому я ввел поправочный коэффициент для координат углов квадрата (в него вписана окружность), так, что эти углы "убираются" внутрь него и поправляют контур круга: Код:
Код:
|
хех, ты глянь в мокромедийный исходник в хелпе, у них тоже скругленный квалрат рисуется :)))))....
имхо я рисовал пикселями через синусы и косинусы... правда с заливкой траблы :((((.... зы: наверное программеры из мокрой писали эту фичу в пьяном угаре(там среди них два русских :)))) ))))... |
способ 1:
рисование окружностей 2-мя ПРЯМЫМИ линиями :) function drawCircle(x, y, radius, cWidth) { mc = _root.createEmptyMovieClip("circle"+cnt, ++cnt); mc.lineStyle(radius, 0x000000, 100); mc.moveTo(x, y); mc.lineTo(x, y+.15); mc.lineStyle(radius-cWidth, 0xffffff, 100); mc.moveTo(x, y); mc.lineTo(x, y+.15); } function redraw() { cnt = 0; for (i=0; i<100; i++) { drawCircle(random(750), random(430), 10+random(150), 1+random(10)); } } redraw(); stop(); способ2: function drawCircle(x, y, radius, startAngle, endAngle) { segm = (endAngle-startAngle)/5; this.moveTo(x+radius*Math.cos(startAngle*Math.rad), y+radius*Math.sin(startAngle*Math.rad)); for (var s = startAngle+segm; s<=endAngle+1; s += segm) { var c_x = radius*Math.cos(s*Math.rad); var c_y = radius*Math.sin(s*Math.rad); var a_x = c_x+radius*Math.tan(segm/2*Math.rad)*Math.cos((s-90)*Math.rad); var a_y = c_y+radius*Math.tan(segm/2*Math.rad)*Math.sin((s-90)*Math.rad); this.curveTo(a_x+x, a_y+y, c_x+x, c_y+y); } } _root.drawCircle(100, 100, 50, 0, 360); |
beep, Дениска, а можно поподробнее, плз...
|
2 Дениска:
Способ №1 - все гениальное воистину просто! только прозрачную дырку не нарисуешь ;-) |
Цитата:
|
Если честно, то не понял как двумя ПРЯМЫМИ можно нарисовать окружность????!!!!....
как оно вообще работает(строки прокомментируй просто ) |
Из параболы окружность не сделаешь, только приблизительно.
Ловите метод, риует эллипс (или его часть) под заданным углом. Точность - 927/1000. Код:
function Ellipse(CenterX, CenterY, ARadius, BRadius, ARadAngle){ |
Да, про аргументы:
CenterX - координата X центра пересечения радиусов CenterY - координата Y центра пересечения радиусов ARadius - радиус А BRadius - радиус B ARadAngle - угол наклона радиуса А StartAngle - начальный угол сегмента EndAngle - конечный угол сегмента. Последние два параметра можно не задавать. Тогда нарисуется эллипс целиком. 2Хрюндик. Никакого пьяного угара. Обычный NURBS |
beep, офигеть! Жаль что мы еще эту чушь не проходили в школе :)
|
:D Четыре года занятия 3D-MAX'ом не прошли даром :D
Если админы опубликуют мой урок по этой теме, то проходить что-то в "школе" и не потребуется. |
2 Хрюндик:
Ты обращал внимание, что линии рисуются с округлыми окончаниями? |
2Дениска
сам придумал ? пять баллов :D :D :D жалко только таким способом можно нарисовать круг, но никак не нарисовать окружность..... |
Только еще один минус есть:
mc.onPress()=function (){...} не будет срабатывать при нажатии на линию. А идея сама - суперская! |
2[subway]design
либо я тебя не понял, либо онПресс работает :) делаю клип, внем рисую этим способом кружок, вешаю онПресс - и все в порядке..... |
Упс, у меня взаимодействия с линиями не работали раньше (может это в пятерке только), только с заливками. Поэтому неглядя послал. Простите.
А, вообще, это к лучшему :) |
2Дениска. И ещё эффект прозрачности в первом методе не проходит, а вообще, если нужно много маленьких цветных кружков, то лучше не придумаешь :D
|
и еще радиус больше 270 не работает :)
но если очень надо то можно маленькие скалить :) вообще я это так, просто идею проверял. :) но вдруг кому пригодиться :) |
Но всё равно, классно!!!
|
Мужики вот вы такие умные выложили бы примерчик какой - нибудь, где это все используется.
Заранее спасибо. :) |
2subway. Замечал :)... но все равно, плиз прокомментируйте строчки поочередно :)... особенно lineStyle() я думаю что в нем и есть вся суть...
|
2 Хрюндик:
help (F1) -> lineStyle() :-))) Код:
|
Только, конечно radius влияет на толщину линии, а следовательно является диаметром окружности, а не радиусом :-) Дениска может запутать :-)
|
2 Aib
А ты уверен, что это NURBS? По моим расчётам - это Безье второго порядка. Насколько мне известно - это не одно и то же. Я ошибаюсь?
Обидно, что нету Безье третьего порядка... :( |
Первый раз про порядки слышу... Если не влом, можно по-подробнее?
|
Можно. Здесь.
|
Спасибо.
|
Не за что. Там ещё много полезного. И про NURBS'ы те же, и про RGB->HSB, и т.д., и т.п.
|
а... ясно :)... thanx огромныЙ! оказалось все таким элементарным...
|
прив еще раз... раз уж заговорили, кто нить скажет мне, дураку, что такое фракталы? а то помню еще по смольновской книжке... там был фрайтальный папоротник...
заранее большой сэнькс. зы: сорри, за оффтопик... //--------------исправления--------------------// сорри, уже нашел на той ссылке... месагу не стер, потому что говорят неприлично :)... //--------------конец исправлений----------// |
2 Useless
Проверял аппроксимацией. Но дело в том, что парабола получается как из NURBS, так и из Безье. Просто по построению это ближе к NURBS (контрольная точка - пересечение векторов, а не место их начала). Степень и впрямь вторая, и к третьей аппроксимируется ой как долго - лучше даже не трогать. 2Хрюндик Фракталы - фигуры (тела), полученные многократным преобразованием комплексной плоскости (n-мерного комплексного пространства). Раскраска производиться в соответствии со скоплением точек в той или иной области. |
ужас, вы все такие умные тут :).... я даже таких слов то не знаю :(...
|
?????????
Что то здесь много текста, нет времени читать.
Но неужели народ пытается программно рисовать во flash. Разве это возможно. Неужели нарыли недокументированные возможности, может это уже для flash выше 5 версии?. Дайте, пожалуйста посмотреть, хотя бы один примитивный исходник. Заранее благодарен. |
2Хрюндик
Слова умные, как-никак фракталы - один из сложнейших разделов соврменной математики. Впрочем, не всё там так уж сложно. Если нужно, могу кое-что рассказать. ТОлько это тема не этого топика ;) |
вот здесь в общих чертах есть сведения на русском о фрактальной геометрии.
вот здесь информации гораздо больше (и с кусками кода :) ), но все на английском |
зацените :)
полный (абсолютный) маразм :D кривая бабочки замыкается за 6*2пи (там счетчик есть, чтобы знать когда период заканчивается) исходник там же - если вместо html приставить fla |
крутой маразм!
|
Весело! А вот у меня нет своего сайта, а здесь исходники на MX пока не берут :( :( :(
|
ну, и у меня нет... я просто пользуюсь тем, что мне на народе вместе с почтой досталось для того чтобы всякие фишки выкладывать :)
сегодня ждите новых геометрических извратов :D (зы: а бабочку я перекрасил =))) так прикольнее) |
|
| Часовой пояс GMT +4, время: 19:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.