|
Модераторы: SoWa |
|
Dandik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 20.10.2005 Где: Раменское Репутация: нет Всего: нет |
День добрый.
Возникла такая задача: Написать функцию (ну или метод класса) принимающую на входе : координаты опорных точек, длину и угол управляющего вектора (ну или координаты управляющее точки, как в curveTo) для каждого сегмента кривой, скорость имитации рисовании (длина шага в сегменте за кадр или кол-во кадров для прохождения сегмента) также для каждого сегмента, возвращающую на выходе плавное, постепенное рисование кривой. Вообщем, проще говоря, мне нужно сымитировать постепенное визуальное рисование линии (не ломаной, а кривой), задав координаты опорных точек (точек перегиба), кривизну и скорость рисования сегмента (части кривой между опорными точками). Подскажите, пожалуйста, как это можно сделать или где можно об этом почитать… |
|||
|
||||
AlDev |
|
|||
Опытный идиотъ Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 8 Всего: 50 |
Flash поддерживает программное рисование кривых Безье (см. MovieClip.curveTo метод)
|
|||
|
||||
Dandik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 20.10.2005 Где: Раменское Репутация: нет Всего: нет |
Нда, действительно поддерживает нарисование, я бы сказал, то есть рассматривается конечный результат рисования. Мне же важен его процесс тобиш имитация процесса рисования в реальном времени (как карандашиком по бумаге ведут). Впрочем эта задача действительно решается с помощью алгоритма, использующего указанный тобой метода класса. Вопрос только в самом алгоритме, уж слишком сложный и длинный он у меня получается. может есть у кого-нибудь принятый для подобной задачи... Задача сводится к делению кривой Базье на маленькие части и воспроизведение их последовательно по кадрам с помощью curveTo... |
|||
|
||||
AlDev |
|
|||
Опытный идиотъ Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 8 Всего: 50 |
||||
|
||||
Dandik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 20.10.2005 Где: Раменское Репутация: нет Всего: нет |
Нда, посмотрел, интересно, но только у меня немного другая задача. Как я понимаю, управляющие точки определены ( controlX, controlY ) ну или в некотрых слкучаяях частично определены (по одной из координат). Мне же необходимо сделать универсальную функцию в этом плане (в конечном итоге сымитировать рисованине curveTo) для этого, как я понимаю нужно поделить будующую кривую на число сегментов (в зависимости от скорости) и просто воспроизвести построение этих сегментов по кадрам... Проблема состит в том, как найти координаты этих точек деления кривой (а потом и определить к каждой по управляющему вектору). Вообщем мне нужно хотябы узнать уравнение кривой Базье. Может задача и надумана... тогда вопрос буудет состоять в тм, как мне лучше реализовать обрисовку в онлайне сложной фигуры (как например это сделлано здесь : http://www.acc-design.ru/ (образ девочки)); |
|||
|
||||
AzuManga |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 168 Регистрация: 12.5.2005 Репутация: нет Всего: нет |
Можно сделать не программно, а по кадрам.
Ставишь в последний кадр уже нарисованную линиями фигуру, а потом в предыдущем кадре стираешь кусочек ластиком. В итоге в начальном кадре у тебя должен остаться пустой рисунок. Это сообщение отредактировал(а) AzuManga - 21.3.2006, 15:35 --------------------
Точка с запятой; |
|||
|
||||
Dandik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 20.10.2005 Где: Раменское Репутация: нет Всего: нет |
Хм, если бы меня это устраивала я бы не писал в форуме по программированию... Если фигура сложная, то это примерно клипов около 40 с линейкой в 50-100 кадров каждый, представляешь примерно сколько на это времени уйдёт.... сколько потом слёз по причине удаления всей работы (из-за невыносимо "тяжёлого веса", в данном случае разность в весе программного кода и непрограммного рисования может превышать 1000 раз...) К тому же чтобы исправить кривую придётся всё перечерчивать (а не за несколько секунд поменять координаты опорных точек)... и ещё много всего.... В данном случае об этом и речи быть не может.... |
|||
|
||||
Jlekc |
|
|||
Опытный Профиль Группа: Участник Сообщений: 520 Регистрация: 10.2.2005 Где: Leopolis Репутация: нет Всего: 4 |
хмм, любой справочник поднять формулы кривых не ткии уж и сложные.
базис любой кривой это набор прямых, чем больше тем плавнее кривая. расчитать масив прямых, поставить указатель и по интервалу дорисовавать. дык что именно нуна? формулы, как делать интервалы? -------------------- |
|||
|
||||
Dandik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 20.10.2005 Где: Раменское Репутация: нет Всего: нет |
Формулы кривых второго порядка (построенные с помощью curveTo) действительно не сложные, если рассматривать их относительно стандартной ориенцации координат. т.е. относительно прямоугольной системы координат... В данном случае нет такой возможности т.к. очень проблематично будет не потерять связь между частями кривой, которая (связь), собственно, и состоит в принадлежности к кривой, построенной с помощью управляющего вектора Базье (тобиш чтобы воспроизвести кривую по частям нельзя отришаться от основного управляющего вектора кривой в каждой части, выражая часть кривой не через управляющий вектор, а через стандартную систему координат). Мне кажется, что это не имеет смысла в рамках flash, т.к. имеет место определение конечной точности - пикселя, которй в составе кривой по методу curveTo и является той прямой. Сдаётся мне, что и окружности вы чертите с помощью отрезков и теоремы Пифагора И при обычном рисовании этот метод сгодился бы как-нибудь (100-150 отрезков окружности не давали бы такой гладкости, как 6 сегментов, построенных с помощью curveTо), но в теме. которая обсуждается конечный результат неважен, важен процесс... постройте, например окружность за 2 кадра... (тобишь используя ваши 2 отрезка, можно догадаться, что получится ) Ну, минимум формулу кривой от угла и длины управляющего вектора Базье. Или рассказать мне, глупому, как можно за 200-300 кадров очертить сложный обьект многими кривыми и гладкими линиями с быстрой скоростью, и чтобы публикация весила не больше 7 кб. |
|||
|
||||
Jlekc |
|
|||
Опытный Профиль Группа: Участник Сообщений: 520 Регистрация: 10.2.2005 Где: Leopolis Репутация: нет Всего: 4 |
лад, не будем вдаваться в демогогию о теории рисования.
твой объект(рисунок) мона описать програмно? Наскока знаю Корел или 3ДМакс помогут это зделать. Имея на руках массив всех точек, придеться немного попариться с порядком вывода. Но думаю тож не приблема. Написать метод и дергать его с определенным интервалом, для прорисовки нескольких позиций из твоего масива.
эт стоит поискать на flasher.ru, nuran всегда любил програмное рисование, найди его на форуме и поспрашивай, думаю не обидет -------------------- |
|||
|
||||
Правила форума "Flash" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | ActionScript 1,2 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |