Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Получение координат с нарисованной линни (http://www.flasher.ru/forum/showthread.php?t=52107)

Mylene 29.11.2003 14:13

Получение координат с нарисованной линни
 
Подскажите, пожалуйста!!!Как с нарисованной кривой линии (нарисованной карандашом во Flash) получить значения координат каждой точки.
:rolleyes:

Techmaker 29.11.2003 15:08

зачем тебе это нужно? :)

sergwizard 29.11.2003 16:13

Самые простые способы:

Способ 1.
В первый фрейм вписываем код:
Код:

posX = [];
 posY = [];
 i =0;
 this.onMouseDown = function(){
        x = _xmouse;
        y = _ymouse;
        posX.push(x);
        posY.push(y);
        trace("x["+i+"]="+posX[i]);
        trace("y["+i+"]="+posY[i])
        i++;
 }

На сцене рисуем линию. Жмем Ctrl+Enter. Мышкой щелкаем по линии, получаем координаты.

Способ 2.

Выделяем нарисованную линию, идем в меню, File -> Export Image. Сохраняем в формате *.ai (Adobe Illustrator). Открываем полученный файл в любом текстовом редакторе (Notepad, UltraEdit), и получаем координаты.

Mylene 29.11.2003 18:30

Супер! Спасибо!!!
Но как можно это делать без мыши? И получать все координаты сразу со всей кривой?

Штрек 30.11.2003 00:26

Если было б так просто -
Макромедия давно бы сделала криволин.градиент.
Мож превратить кривую в Guide, пустить по ней мувик и
EnterFrame снимать его координаты :confused:
В общем гимор, ну его....

derhab 30.11.2003 08:02

Цитата:

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

Способ 2.

Выделяем нарисованную линию, идем в меню, File -> Export Image. Сохраняем в формате *.ai (Adobe Illustrator). Открываем полученный файл в любом текстовом редакторе (Notepad, UltraEdit), и получаем координаты.


ну вот:

400.3 166.3 m
400.3 168.8 400.4 171.3 400.5 173.8 C
400.9 179.8 399.7 185.5 397.0 190.7 C
395.3 193.9 393.3 196.8 390.9 199.4 C
386.5 204.1 382.2 209.0 378.1 214.0 C
376.3 216.1 374.3 217.8 372.0 219.0 C
362.7 224.1 352.7 228.2 342.2 231.4 C
336.1 233.2 330.0 235.0 323.8 236.6 C
313.2 239.3 302.3 240.2 291.2 239.0 C
287.3 238.6 283.4 238.0 279.6 237.1 C
267.7 234.3 256.4 230.0 245.7 224.3 C
242.1 222.4 238.7 220.1 235.6 217.5 C
234.5 216.6 233.9 215.4 233.7 213.9 C
232.6 202.5 233.5 191.3 236.5 180.2 C
239.5 169.5 242.8 158.8 246.5 148.3 C
250.7 136.0 252.2 123.3 250.9 110.2 C
249.6 97.3 247.0 84.6 243.0 72.2 C
240.2 63.6 237.3 55.0 234.3 46.5 C
230.0 34.5 224.1 23.3 216.7 12.9 C
215.1 10.6 213.2 8.7 211.1 7.1 C
209.4 5.9 207.5 4.9 205.3 4.2 C
198.8 1.9 192.1 1.1 185.1 1.7 C
178.5 2.3 171.8 3.2 165.3 4.5 C
155.2 6.4 145.2 8.6 135.2 11.0 C
126.4 13.1 118.0 16.2 110.0 20.3 C
99.5 25.6 89.6 31.8 80.2 39.1 C
70.0 46.9 60.3 55.2 50.9 63.9 C
45.7 68.6 40.8 73.5 36.1 78.6 C
27.8 87.6 20.4 97.1 13.8 107.2 C
9.0 114.5 5.6 122.2 3.4 130.4 C
1.9 136.0 1.3 141.6 1.6 147.3 C
1.7 150.8 2.1 154.3 2.7 157.7 C
3.4 161.8 5.1 165.5 7.9 168.7 C
9.5 170.7 11.2 172.6 12.8 174.5 C
22.2 184.9 29.1 196.7 33.6 209.8 C
37.6 221.1 39.3 232.8 38.9 244.8 C

как с этим разобраться? :confused:
Где тут х, а где y? Блин.

sergwizard 01.12.2003 01:41

Вложений: 1
Derhab, ну не ленись. Поэкспериментируй немного. Нарисуй точку, отследи, как это проявляется в ai. Потом нарисуй прямую линию, - еще раз отследи. Поверни линию, - посмотри, что изменилось. Усложняй рисунок, отслеживай.
У меня, в свое время, на то чтобы врубиться, ушло около двух часов. Врубился. Пользовался. Потом нашел более легкий способ. От этого отказался.
Вот, попробовал по твоим координатам нарисовать линию. Похоже?

derhab 01.12.2003 09:51

Да вроде похоже:)) Я уже забыл..линия была вчера...но я тебе верю. Думаю, будет нужда, разберусь с этим способом, а вообще я делал пару раз методом пускания мувика по кривой-guide с записью его координат в массив. Для несложных кривых вполне подходит.

sergwizard 02.12.2003 00:54

Вложений: 1
Цитата:

а вообще я делал пару раз методом пускания мувика по кривой-guide с записью его координат в массив. Для несложных кривых вполне подходит.
Вот, возьми эту флэшку-утилитку. Она подойдет и для более сложных кривых.
Год назад, когда мы делали на flasher.ru "новогоднюю елку", и мне надо было срочно нарисовать зайца с подарками, - хороший человек Max N. Chubin, помог мне этой штукой.

derhab 02.12.2003 02:33

Сбасибо:), я видел это... Кстати, не слишком удобная весч, попробуй нарисовать методом кликания по-настоящему плавную кривую.

sergwizard 02.12.2003 03:18

Да при желании - все можно. Чаще кликай. Вспомни, что координаты можно использовать не только для lineTo, но и для curveTo. В любом случае, это хорошее подспорье.

Mylene 02.12.2003 08:56

Вложений: 1
Как бы сделать, чтобы выводились сразу все координаты кривой одномерный массив,
а затем записывались в текстовый файл?

Mylene 03.12.2003 09:20

ну вы же кричали, что это так легко???
 
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!

:mad:

Mylene 03.12.2003 09:20

ну вы же кричали, что это так легко???
 
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!

:mad:

Mylene 03.12.2003 09:20

ну вы же кричали, что это так легко???
 
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!

:mad:

Mylene 03.12.2003 09:20

ну вы же кричали, что это так легко???
 
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!

:mad:

Mylene 03.12.2003 09:20

ну вы же кричали, что это так легко???
 
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!

:mad:

Mylene 03.12.2003 09:20

ну вы же кричали, что это так легко???
 
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!

:mad:

derhab 03.12.2003 15:54

ну для начала...выложи нормальный файл, твой зип битый.
Зачем же так орать?

Mylene 03.12.2003 16:18

Вложений: 1
вот этот файл ничего???
:D

derhab 03.12.2003 19:22

Вобщем твой код должен выглядеть примерно так:

В руте:

Код:

ArrX = new Array();
ArrY = new Array();
i = -1;
function Coord()
{
        i++;
        ArrX[i] = _root.point._x;
        ArrY[i] = _root.point._y;
}
_root.onEnterFrame = function()
{
        Coord();
};

На кнопке:

Код:

on (release) {
        trace("ArrX["+_root.ArrX+"]");
        trace("ArrY["+_root.ArrY+"]");
}


sergwizard 03.12.2003 20:59

У меня, в принципе, то же самое, что и у Derhab(a). Только маленькое, но нужное дополнение: проверка на остановку МС "point". Это чтобы ArrX и ArrY не росли бесконечно.
Код:

ArrX = [];
ArrY = [];
i = 0;
 function Coord(){
        ArrX[i] = _root.point._x;
        ArrY[i] = _root.point._y;
        i++;

Lx = ArrX.length;
LPx = ArrX[Lx-2];
LIx = ArrX[Lx-1];
LPy = ArrY[Lx-2];
LIy = ArrY[Lx-1];
}
this.onEnterFrame = function(){
        coord();
        if(LPx==LIx and LPy==LIy){
                this.onEnterFrame = null;
        }
}

Кнопка
Код:

on (release) {
        trace("ArrX["+_root.ArrX+"]");
        trace("ArrY["+_root.ArrY+"]");
}



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

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