Просмотр полной версии : Движение точки по прямой
Вообще говоря, ламерский вопрос.
Хочется построить движение точки по прямой в любом направлении. Детская формула y=kx+b тут явно не проходит. Нужна зависимость x и y от третей переменной ( ну, скажем, t).
Скажем для движения по окружности это:
y=y0+R*sin (angle*t);
x=x0+R*cos(angle*t);
А для прямой??
Вопрос на засыпку!
Никто не видел кряк для Sothink SWF Decompiler,,
Название я может не совсем верно записал
greyshaman
02.03.2003, 14:14
y=y0+t*sin (angle);
x=x0+t*cos(angle);
Вот теперь я себя точно чувствую, как стопроцентный ламер.
а что с Декомпиллером не так? у меня и без кряка нормально пашет :)
в смысле сам ломал,,
Дак у меня ничего нет. Тут бы скорее всего пригодилась прога, которая умеет сравнивать реестр до установки программы и после, ну или декомпилятор, там Айс или другой, но я в них не шарю, ибо я прикладник, а не системщик. Так что, если ты регестрацию убил, расскажи как, будь другом.
greyshaman
03.03.2003, 16:35
тогда я верблюд :p :p :p
качат от сюда, и нет проблем :)
http://fosisoft.home.ro/
за одно можешь и на картиночки по счелкать :)
Techmaker
07.03.2003, 19:58
Скажите что это такое плз.:
----------------------
"x" - это _x?
"y" - это _y?
"x0" - начало движения (по оси x)?
"y0" - начало движения (по оси x)?
"R" - радиус окр.?
----------------------
"angle " - ??? ??? ???
"t " - ??? ??? ???
----------------------
заблуждения [м_оло_д_ого] "дизайнера" млин... ... :) :p :D :confused:
greyshaman
07.03.2003, 20:09
тебе это не к чему
не сочти за наеззд
удачи
Techmaker
07.03.2003, 20:14
просто интересно... интересно...
хочу посмотреть что получится...
:: angle & t ::
---------------------
???????????????
:) :( ;) :p :( :D :rolleyes: :confused:
Techmaker
07.03.2003, 20:17
если не трудно то просто скажи что этои переменные значут... плз.плз.плз.плз. т.е плизз...
:) :confused: ??? :confused: :)
мягко говоря, попа из тебя, а не дизайнер, так что как для дизайнера я тебе не отвечу :)
Techmaker
08.03.2003, 11:46
да .... в этом вопросе - я ответа не найду ... а вобще я ещё в школе учусь и флеш у меня 5-6 месяцев всего... (flash 5тый)...
... ... ... по-этому вас я грузить не буду!!!!!!!!!!!! :( :( :( :mad:
greyshaman
09.03.2003, 13:54
Как раз в школе эти формулы и разбирают. В дальнейшем предполагается что это пройденный материал :)
x y координаты точки на плоскости, _x _y дисплейные координаты, это не одно и тоже.
x0,y0 координаты центра окружности.
угадал R в этой формуле действительно радиус.
t- время
angle -угол поворота в радианах
преход от градусов к радианам
angle=degree*Math.PI/180;
Nox Noctis
10.03.2003, 14:06
кхм...
если есть общая формула y = kx + b,
а угловой коэффициент прямой - это тангенс угла наклона,
то запустить точку по этой прямой можно очень просто...
например так:
// например: y = 2*x;
k = 2;
this.createEmptyMovieClip("outer", 1);
outer._rotation = -Math.atan(k)/Math.PI*180;
outer.createEmptyMovieClip("inner", 1);
outer.inner.lineStyle(5, 0, 100);
outer.inner.lineTo(.15, 0);
outer.inner.onEnterFrame = function() {
this._x++;
};
теперь если нам нужны координаты точки в какой-то момент, то их можно получить так:
outer.inner.localToGlobal(point={x:outer.inner._x, y:outer.inner._y});
сделали два клипа один в другом и внешний повернули на нужный угол...
после этого внутренний можно просто двигать по иксу с нужной скоростью и не заморачитваться насчет формулы...
иногда так бывает попроще, чем вычислять синусы-косинусы во время движения...
Ты сдесь прибавляешь координату только по иксу, а если у мя все движение по y, скажем ф-ия y=5 то фишка не пашет!
И, имея третью переменную t, легче держать постоянную скорость перемещения!
ЗЫ: Блин, совсем другой принцип кодинга, нежели чем у меня!!! С трудом читаю!!!
greyshaman
10.03.2003, 16:40
Оригинал написал Chas
Вот теперь я себя точно чувствую, как стопроцентный ламер.
И усердно продолжаешь на этом настаивать
outer._rotation = -Math.atan(k)/Math.PI*180;
эта строка полностью снимает вопрос про x и y
а замена this._x++ на this._x+=dx все остальное;
Nox Noctis
10.03.2003, 17:29
Оригинал написал(а) Chas
y=5 то фишка не пашет вы в средней школе учились, уважаемый ? :)) (это я так, без наездов :) )
y = 5;
если записать в стандартном виде это:
y = 0*x + 5;
то есть k=0, а арктангенс нуля даст как раз ноль.
пятерка дает сдвиг по оси игрек вверх. (y=5 это прямая || оси игрек через точку (0, 5) )
если дополнить то, что я написал раньше, то получится примерно следующее:
// например: y = 2*x + 3;
k=2, b=3, step=1;
this.createEmptyMovieClip("outer", 1);
outer._rotation = -Math.atan(k)/Math.PI*180;
outer.createEmptyMovieClip("inner", 1);
outer.inner._y += b;
outer.inner.lineStyle(5, 0, 100);
outer.inner.lineTo(.15, 0);
outer.inner.onEnterFrame = function() {
this._x += step;
};
Да я просто не сразу в коде разобрался, говорю же, не моего уровня код, да и на МХ я недавно только перешел. Кстати, предыдущий вариант кода тоже прекрасно отрабатывал для любых углов. И тогда уж лучше отвязаться от этого дуратского k и просто задавать угол (для моей цели это удобней). Я, в принципе, с проблемой разобрался, можете посмотреть результат (форум\Action Script\Движек для игрушки), если не ошибаюсь, то это
http://www.flasher.ru/forum/showthread.php?threadid=43775
Ну-ка, проверьте меня господа, если формула прямой, прох. через 2 т.: (x-x1)/(x2-x1)=(y-y1)/(y2-y1),то k=(y2-y1)/(x2-x1); так, что ли??
ЗЫ: первый курс, в школе учился
ЗЗЫ: я не программер, я только учусь! И СУБД, РПО мне ближе пока что, чем рисование.
Techmaker
10.03.2003, 17:58
-А- это что ещё за вещьь??
outer.inner ._y += b;
у меня - лень до ушей :D
Параметрическое задание прямой.
x=t+x0
y=kt+y0
t-параметр.
k-танкенс угла налона, или другипи словами (1,k) - напрвляющий вектор прямой.
x0,y0- координаты любой точки на прямой.
Nox Noctis
10.03.2003, 18:07
Оригинал написал(а) Chas
предыдущий вариант кода тоже прекрасно отрабатывал для любых углова я разве говорил что-то против ? :)
ничуть...
я говорю: иногда так удобнее =) три ключевых слова...
и никто тебе не мешает в моем варианте тоже задавать угол без всякого k и арктангенса...
но изначально ты спорсил про формулу - вот я и отвечаю :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.