Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Как на Action Script нарисовать линию (http://www.flasher.ru/forum/showthread.php?t=23699)

Anddrey 28.11.2001 13:36

Как на Action Script нарисовать линию
 
Как на Action Script нарисовать линию
от точки до точки а потом ее стереть?

Есть шарик который движется слева направо
и есть вверху точка привязки.Вот от нее надо
и вести линию.
Как это сделать?

El 28.11.2001 13:45

надо сначала сделать клип с линией, а потом этот клип соответствующим образом, позиционировать, поворачивать и масштабировать

Fisher 28.11.2001 16:03

Зри в исходниках. Тама такого завались. :)

believe 28.11.2001 17:04

Можешь сделать линию маской, а в маскированном слое твин с перемещающимся объектом нужного цвета и это дело зареверсить (для стирания)

Cerber 28.11.2001 18:13

это гемор :) и размер большой

El 28.11.2001 18:34

ну вы, млин, даете!

рисум горизонтальную линию
делаем из нее мувик, называем его (instance) graph
его опять помещаем в мувик, называем его (instance) line

делаем в корне еще два мультика (любые)
один называем startPoint, другой endPoint

на line вешаем
Код:

onClipEvent (enterFrame) {
        tmpDx = (_root.startPoint._x - _root.endPoint._x)
        tmpDy = (_root.startPoint._y - _root.endPoint._y)
        Angle = Math.atan(tmpDy/tmpDx)*180/Math.PI
        lineLength = Math.sqrt( tmpDx*tmpDx + tmpDy*tmpDy)
        LineX = (_root.startPoint._x + _root.endPoint._x)/2
        LineY = (_root.startPoint._y + _root.endPoint._y)/2
        //
        this._x = LineX
        this._y = LineY
        this._rotation = Angle
        this.graph._width = lineLength
}

все :cool:

Fisher 28.11.2001 19:26

2Anddrey
Не слушай ты этих глупостей - смотри в исходниках. Все делаеться гораздо проще. :)
2El Ты бы еще ряды Фурье вспомнил :p

El 28.11.2001 19:29

2 Fisher:
Это мы запросто, старик Фурье рулит :cool:

Хотя куда уж проще :)

El 28.11.2001 19:37

А в исходниках это лежит в разделе математика :D

http://www.flasher.ru/src/category_40_2/

Fisher 28.11.2001 19:53

Примерно так
onClipEvent (enterFrame) {
_x = _root.t1._x;
_y = _root.t1._y;
_xscale = _root.t2._x-_root.t1._x;
_yscale = _root.t2._y-_root.t1._y;
}
Тока линия это диагональ квадрата 100*100 и центр на конце.
Не те ты исходники смотришь. :)

El 28.11.2001 19:56

Тока ведь ента линия должна жутко scale-ться. Или все таки нет?

[subway]design 28.11.2001 21:05

если линия - hairline, то все в порядке

Novikoff 29.11.2001 06:44

Вложений: 1
здесь тоже вроде бы код не сложный:)

El 29.11.2001 14:02

2 [subway]design
А если мне понадобится толстая линия?

[subway]design 29.11.2001 14:28

2 Ел
 
Я как раз дописываю возможность рисовать линии во FlashPainter'e
Если код достаточно простой, тогда опубликую, но исходник не дам - не просите :D
В общем, если поставить толстую линию (солид), то в зависимости от искажения квадрата (в котором она - диагональ) будет разная толщина.

El 29.11.2001 14:40

2 [subway]design

Это я к тому, что в моем варианте алгоритма (см. выше) линию можно делать любой толщины и она не будет искажаться :cool:

Fisher 29.11.2001 15:22

Вложений: 1
Привет народ с утра не могу сюда попасть перед Элом извениться.
Положил свой вариант в исходники, может сегодня и появиться, но кому невтерпеж может посмотреть и здесь. Линию можно любой толщины. Немножго глючит, но это видать нужно не скалить а шириной оперировать, а для этого нужно еще один уровень вложенности было облом.
з.ы. Головастый!!! Ты где ? :D

El 29.11.2001 16:06

прикольно, блин!
:D

Vaicartana 29.11.2001 21:27

Юзать для этой цели аркТангенсных функций неприемлимо, т.к. не возможно нарисовать прямую горизонтальную(вертикальную) линию

В примерах висит замечательный сорс с карандашем, так вот там рисование линий как раз реализовано через аркСин с последующим растяжением квадратного мувика по одной оси и поворотом.

Толщина линии - элементарное растяжение по другой оси.

[subway]design 29.11.2001 22:34

я уже обновил FlashPainter (версия один точка ноль) :
subwaydesign.by.ru/painter.html
2 ALL: дружно комментируем!

Vaicartana 29.11.2001 23:27

1. Ограничить на мах. колво линий!
2. Нафига там 3-и абсолютно одинаковые ф-ии setC1,..,setC3?
помойму было бы проще function setC1 (С,obj1) {} сделать.
3. Типы кистей лучше не в текстовых переменных хранить а в числовых, ведь строки "Аирбуш" и "Аиpбуш" хоть и выглядят одинакого.
Eval () - Маздай!
this[""+i] рулит

опчим работать и работать. :D :D

El 30.11.2001 13:24

2 Vaicartana:

Цитата:

т.к. не возможно нарисовать прямую горизонтальную(вертикальную) линию
как это нельзя!? :confused:

Vaicartana 30.11.2001 13:34

tan (90) = oo
artan (00) = 90

теперь покажи мне в АС функцию, возвращающую оо

El 30.11.2001 13:56

А покажите мне во флэше функцию, соторая вернет мне точное значение PI или по крайней мере посчитает точное значение atan(90градусов).

если atan(Math.PI) будет вычисляться с точночтью до 10 знака, то этого вполне хватит чтобы нарисовать визуально горизонтальную линию

Vaicartana 30.11.2001 14:00

ерунда!
он тебе вернет АшиПку.

ЗЫ: А функция PI до энного знака элементарно вычисляется с помощью ряда.

El 30.11.2001 14:19

trace (Math.atan (Math.PI/2))

результат

1.00388482185389


P.S. А если это все не так, то как же оно у меня работает :)

P.P.S. Xотя базар гнилой, в конце концов можно поставить проверку и отсекать значения

gOloVasTicK '~ 30.11.2001 14:30

2Fisher: :D :D :D :D :D

gOloVasTicK '~ 30.11.2001 14:32

Вложений: 1
2Fisher: :D :D :D :D :D :cool:

[subway]design 30.11.2001 16:41

2Vaicartana
 
С помощью какой проги подглядел? Я знаю что на Форуме это уже обсуждалось, но откуда качнуть?
А ты и реализацию onClipEvent(enterFrame) тоже видел?
Одинаковые функции - это остаток прошлого, просто не удалил. Там только 2 используются, т.к. 2 цвета хранятся в разных свойствах объекта _root.Tool. Можно создать еще один параметр и оставить всего одну ф-цию, но полмува переделывать - лень. Тем паче, этот код не очень-то тормозит, а великий тормоз - графика.

Кстати я пользуюсь линией - диагональю квадрата в 100 пикселей W&H. Все искажение в 2 строчки:

obj._xscale=deltax;
obj._yscale=deltay;

а eval() - это настоящий рулез! Противоположные доводы пожалуйста обосновывайте.

El 30.11.2001 16:50

http://www.buraks.com/asv

Fisher 30.11.2001 17:07

Вложений: 1
2gOloVasTicK '~
Нууу такогото добра.... У самих девать некуда :D Я вот все думаю как на этом принципе Надписи делать типа от руки.
Как у Уила но не поточечно. Все не соберусь поэксперементировать.
з.ы.Ты на эти выходные едешь? Фотик возьмите обязательно - отчитаешся :)

[subway]design 30.11.2001 17:09

Черт! Он же весь мув вдоль и поперек сканирует!!!!!!!!!!!!
Аа-АААААААААААААААААААААААААААА!!!!!!!!!!!!!!!

[subway]design 30.11.2001 17:13

Насчет прописных букв
 
Я сейчас рисую мувики под DuplicateMC, в которых масками на 40 кадров рисуется буква. Кому надо - пользуйтесь (когда доделаю, а это долго).

Идея! Можно такие шрифты разрабатывать! В swf формате! Для подгрузки и дуплицирования! Раздел "swf fonts" на flashkit'e !!!!!!!!!!!! Вот рулез будет!!!!

Ваши предложения и идеи на мой ящик

El 30.11.2001 17:14

2 [subway]design

Ты посмотри там еще одна тулза есть, которая позволяет редактировать прямо в SWF ссылки, видимость символов и пр. вот это действительно труба

Fisher 30.11.2001 17:24

Народ вы про какой софт баслаете? Где скачать? :p
2[subway]design Рисовать не рулез. Ты вот ерайзер реализуй-это рулез! :p

Fisher 30.11.2001 17:26

Я маски это для уроков :p А еще большой геморой :D
Вот если бы дубли под маску засунуть тогда ДА! Хотя... не над тем мы головы ломаем. В шестерке все это уже есть. :)

El 30.11.2001 17:27

2 Fisher

про Action Script Viewer
http://www.buraks.com/asv

и про URL Action Editor
http://buraks.com/uae/

Fisher 30.11.2001 17:33

Спасибо Эл . АСВ у меня как и у любого порядочного чела уже давно имееться :D А вот вторую софтину уже заливаю - посмотримссс :p

El 30.11.2001 17:42

2 Fisher

:p

Vaicartana 02.12.2001 01:14

Я тут в ауте пару днёв быв, по поводу приезда к нам КиШ :D
опчим всем по порядку:

Эл - учи Мат.Ан - он рулит! АркТан (Н) существует для любого значения, кроме оо. Флеш на PI ваще забил и округляет его как ему хочется, поэтому Тан(90) на флеше дает 1.###*10^16


[subway]design: Ну, ты уже знаешь :D
а на счет Eval - с некоторых пор я им просто не пользуюсь. Я просто посмотрел как сделаны флешки Дениски и тихо выпал в осадок.
Да собсно не я один :D :D :D


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

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