![]() |
Из ломанной в кривую
Вложений: 1
Интересно, можно сделать так, чтобы ломаная линия, после того как в некоторые ее точки ткнули мышкой, скруглялась?
Заставить пользователя нарисовать ломаную замкнутую линию еще можно, а вот скруглить углы... Если есть хоть какие-то мысли или примеры - поделитесь пожалуйста... :) |
глянь, (в самом низу)
не уверен, оно ли тебе надо (праздник ведь.. |
Спасибо, посмотрю... :)
|
Вложений: 2
Все-таки не совсем то.... надо как на картинке вверху... А у тебя так:
|
ипользуй обычную математическул интерполяцию...
это если сосьавлять потом ее из кусков кривых Безье. или попробуй разобраться в самих кривых Безье... |
Надо сделать из указываемой пользователем точки - контрольную точку в кривых Безье - а как это организовать?
|
вот так и сделать: "из указываемой пользователем точки - контрольную точку в кривых Безье"
|
curveTo(x,y,x2,y2);
синтаксис такой вроде.. |
:) А кодом не поможешь, плиз?
Я рисую lineto по событию onMouseUp, т.е. - клик - точка - клик - прямая между двумя точками... Допустим знаю как сделать точное позиционирование, чтобы точно щелкнуть по вершине, то как из угла сделать кусок окружности - хоть убей... :) |
хм... напиши мне щас на ICQ 273373388 попробуем разобраться...
|
Народ, помогите! Сэр Dracula_DIS подсказал словесный алгоритм, спасибо ему за это большое.
Но реализовать все равно не могу - рисую программно квадратик (допустим) и заливаю его (lineTo, beginFill). Дальше после того как он закрасился, надо нажать кнопку и указать на точки какие надо скруглить. Скруглять надо только прямые углы и только на определенный радиус. Достаточно переделать указанную точку в контрольную в кривых Безье методом curveTo. В какую сторону скруглять надо определять может HitTest`ом?? Типа определдить куда идут отрезки, создающие угол. Но как дальше преобразовать вершину в контрольную точку и перерисовать этот угол или всю фигуру??? Не понимаю... Она ведь уже нарисована. Помогите, чем можете... :( |
Dennix, onMouseUp помимо рисования, заноси в некий массив userArray координаты точки.
массив[0].x - это координата для moveTo массив[0].y - это координата y Код:
var userArray:Array = [];потом создаём новый массив curveArray, где сохраняем еще и промежуточные точки - середины, по принципу Код:
но это уже на собственное обмозгование - думаю, несложно догадаться. Код не проверял, но думаю тут принцип понятен. |
зачем сохранять еще середины если их по идее можно высчитать в любой момент??
|
в общем то да )))
Так нагляднее. Никто не мешает потом удалить служебный массив. |
| Часовой пояс GMT +4, время: 17:20. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.