Просмотр полной версии : Получение координат с нарисованной линни
Подскажите, пожалуйста!!!Как с нарисованной кривой линии (нарисованной карандашом во 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), и получаем координаты.
Супер! Спасибо!!!
Но как можно это делать без мыши? И получать все координаты сразу со всей кривой?
Если было б так просто -
Макромедия давно бы сделала криволин.градиент.
Мож превратить кривую в Guide, пустить по ней мувик и
EnterFrame снимать его координаты :confused:
В общем гимор, ну его....
Оригинал написал(а) 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
Derhab, ну не ленись. Поэкспериментируй немного. Нарисуй точку, отследи, как это проявляется в ai. Потом нарисуй прямую линию, - еще раз отследи. Поверни линию, - посмотри, что изменилось. Усложняй рисунок, отслеживай.
У меня, в свое время, на то чтобы врубиться, ушло около двух часов. Врубился. Пользовался. Потом нашел более легкий способ. От этого отказался.
Вот, попробовал по твоим координатам нарисовать линию. Похоже?
Да вроде похоже:)) Я уже забыл..линия была вчера...но я тебе верю. Думаю, будет нужда, разберусь с этим способом, а вообще я делал пару раз методом пускания мувика по кривой-guide с записью его координат в массив. Для несложных кривых вполне подходит.
sergwizard
02.12.2003, 00:54
а вообще я делал пару раз методом пускания мувика по кривой-guide с записью его координат в массив. Для несложных кривых вполне подходит.
Вот, возьми эту флэшку-утилитку. Она подойдет и для более сложных кривых.
Год назад, когда мы делали на flasher.ru "новогоднюю елку", и мне надо было срочно нарисовать зайца с подарками, - хороший человек Max N. Chubin, помог мне этой штукой.
Сбасибо:), я видел это... Кстати, не слишком удобная весч, попробуй нарисовать методом кликания по-настоящему плавную кривую.
sergwizard
02.12.2003, 03:18
Да при желании - все можно. Чаще кликай. Вспомни, что координаты можно использовать не только для lineTo, но и для curveTo. В любом случае, это хорошее подспорье.
Как бы сделать, чтобы выводились сразу все координаты кривой одномерный массив,
а затем записывались в текстовый файл?
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!
:mad:
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!
:mad:
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!
:mad:
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!
:mad:
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!
:mad:
Помогите, как получить все координаты, которые пробежал мувик по кривой! У меня не получается, это ж легко???!!!
:mad:
ну для начала...выложи нормальный файл, твой зип битый.
Зачем же так орать?
вот этот файл ничего???
:D
Вобщем твой код должен выглядеть примерно так:
В руте:
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+"]");
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.