Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   matimatika=) (http://www.flasher.ru/forum/showthread.php?t=66506)

ADMlN 07.07.2005 23:19

matimatika=)
 
izvesen x,y pervoi tochki
radius(napravlenie) i dlina do vtaroi tochki
kak uznat raspolozhenie vtoroi tochki?

Nirth 07.07.2005 23:21

как насчет воспользоваться трудами пифагора?
а*а = B*b + C*c

ADMlN 08.07.2005 02:52

cho cho?????????????????????

Nirth 08.07.2005 03:18

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

Nirth 08.07.2005 03:29

хотя тут пифагор не нужен, можно просто прибавить сразу после вычисления ширины и высоты.

ADMlN 08.07.2005 03:36

mde necho neponel=)karoch proshe delaetsja tak
x=cos(radius)*rastojanie
y=sin(radius)*rastojanie
ja eto so vremjon qbasica vspomnil=)

a vot vtoroi vapros=)
izvesni 2 tochki kak uznat pod kakim vektorom smotrit odna nadruguju
(esli odna nacelina nadruguju)

Nirth 08.07.2005 03:45

ты имеешь введу тебе нужен угол под которым одна точка находиться относительно другой?

если да то
Код:

trace( (Math.atan2 (this.p0._y - _root.p1._y, this.p0._x - _root.p1._x)*180)/Math.PI)
где p1 и p0 точки

если нет то задай вопрос конкретней чтобы было понятно чего же тебе нужно

kruasan 08.07.2005 03:57

1)Если известны расстояние и угол:

x_new=R*Math.cos(alpha)+x;
y_new=R*Math.sin(alpha)+y;
где:
(x,y) - координаты известной точки;
R - расстояние до неизвестной точки;
alpha - угол, определяющий направление к неизвестной точке. Подразумевается, что это угол между координатной осью X и отрезком, соединяющим две твоих точки. Как замерять угол: увеличение угла - это движение по часовой стрелке.

2)Если известен радиус-вектор:

x_new=а+x;
y_new=b+y;
где:
(a,b) - радиус-вектор (точка, определяющая длину и направление)

kruasan 08.07.2005 04:01

Ой, малость припоздал с ответом... :p

kruasan 08.07.2005 04:09

Цитата:

Сообщение от Nirth
ты имеешь введу тебе нужен угол под которым одна точка находиться относительно другой?

если да то
Код:

trace( (Math.atan2 (this.p0._y - _root.p1._y, this.p0._x - _root.p1._x)*180)/Math.PI)
где p1 и p0 точки

Ну а если имеется в виду вектор (отрезок имеющий направление и длину), а не угол то так:
x=x2-x1; y=y2-y1; - направление от (x1,y1) к (x2,y2)
или
x=x1-x2; y=y1-y2; - направление от (x2,y2) к (x1,y1)

nuran 08.07.2005 06:28

насколько я понял, ты щаз написал формулу получения из двух точек - вектора.

kruasan 08.07.2005 17:00

Именно. Полученная точка (х,у) определяет вектор, начало которого в (0,0) , а конец - в (х,у).
Это был ответ на вопрос "izvesni 2 tochki kak uznat pod kakim vektorom smotrit odna nadruguju"

seifip 09.07.2005 13:19

Math.sqrt(a*a+b*b)

nuran 09.07.2005 13:51

и что это ты написал? никак пятый класс и теорему пифагора вспомнил ...

Логин 09.07.2005 19:20

kak uznat rastojanie mezhdu objectov?
this.p1._x=_xmouse;
this.p1._y=_ymouse;
tt= Math.sqrt((this.p0._x - this.p1._x)^2+(this.p0._y - this.p1._y)^2)
proboval nerabotaet mb oshibka gde?

Логин 09.07.2005 23:44

kak uznat rastojanie mezhdu objectov?
this.p1._x=_xmouse;
this.p1._y=_ymouse;
tt= Math.sqrt((this.p0._x - this.p1._x)^2+(this.p0._y - this.p1._y)^2)
proboval nerabotaet mb oshibka gde?

nuran 09.07.2005 23:51

возьми учебник по геометрии за пятый класс и почитай.

Логин 10.07.2005 00:18

sry u menja evo net u tja tozh vidno :/
kak uznat rastojanie mezhdu objectov?
this.p1._x=_xmouse;
this.p1._y=_ymouse;
tt= Math.sqrt((this.p0._x - this.p1._x)^2+(this.p0._y - this.p1._y)^2)
proboval nerabotaet mb oshibka gde?

TERRORist 10.07.2005 00:35

Ты конечно не писал прямо так: tt= Math.sqrt((this.p0._x - this.p1._x)^2+(this.p0._y - this.p1._y)^2)

Ты знаешь, что означает ^2 ? Это квадрат.

Логин 10.07.2005 01:00

nu blin nekto neznaet sholi?

nuran 10.07.2005 01:08

все знают, кроме тебя конечно =).

Логин 10.07.2005 01:14

esli znaete to napishiti script...

Amplify 10.07.2005 10:02

я лучше пойду позавтракаю за тебя.

Логин 10.07.2005 15:50

nu esli neznaete to nefludite :mad:

TERRORist 10.07.2005 21:00

да скажите ему, он с первого раза не понимает.

K.A.T.A.F.A.L.K.E.R 11.07.2005 18:35

Знач так. Вводишь декартову систему координат... Или не... Х** с ней. Радиальную. Вообщем, имеем два параметра. Радиус-вектор и угол наклона. Ими однозначно определяется положение точки в двумерной плоскости (очевидно: линейная независимость на лицо). Далее так. Пусть На эту систему координат наложена декартова, их нули совпадают, угол отсчитываем от ось OX. Тогда, пусть первая точка из нуля видна под углом a1, а вторая - a2. Очевидно, что расстояние между точками по теореме косинусов равно (r1^2+r2^2-r1*r2*cos(a2-a1))^(1/2), где r1, r2 - вторые координаты первой и второй точки соответственно. Имеем:
x1=r1*cos(a1) y1=r1*sin(a1)
x2=r2*cos(a2) y2=r2*sin(a2)
Далее мы точно знаем что cos(b)^2+sin(b)^2 = 1; Отседова и с предыдущих формул связи между x,y,r,a получаем r1^2=x1^2+y1^2; r2^2=x2^2+y2^2; Вспоминая предыдущую теорему косинусов понимаем, что нам просто необходимо знать чему равен cos(a2-a1) через cos(a2) и cos(a1). Воспользуемся для этого преобразованием Эйлера. Известно (получить можно из ряда Тейлора), что e^(ik) = cos(k)+isin(k), где i - не что иное, как комплексная единица. Однако, мы точно знаем что e^(i(c+d))=e^(ic)*e^(id). Отседова, подставив само преобразование, получим: cos(c+d) = cos(c)*cos(d) - sin(c)*sin(d). Подставив сюда вместо c значение a2, а вместо d - значение -a1, а также из преобразований координат соответствующие значения синусов и косинусов, окончательно получим R = ((X2-X1)^2+(Y2-Y1)^2)^(1/2) ! НУ ЧТО ЗДЕСЬ СЛОЖНОГО??? :D :D :D

kruasan 11.07.2005 21:16

2Login

Ты неправильно возведение в степень кодируеш...
Надо писать не а^2 , а Math.pow(a,2)

2K.A.T.A.F.A.L.K.E.R

А помоему через сепарабельные метрические пространства было бы проще :D

TERRORist 11.07.2005 21:23

Цитата:

Сообщение от kruasan
2Login

Ты неправильно возведение в степень кодируеш...
Надо писать не а^2 , а Math.pow(a,2)

2K.A.T.A.F.A.L.K.E.R

А помоему через сепарабельные метрические пространства было бы проще :D

Вот, вот. Я же о том же ему говорил. Как горох об лед.

K.A.T.A.F.A.L.K.E.R 12.07.2005 16:01

чего париться??? сколько точек в отрезке??? бесконечность!!! вот и длина любого отрезка равна бесконечности!!! ))) а еще лучше было бы ввести пространство где все расстояния равны, написать для него свою алгебру и мозги не грузить!!! :d

Ales 12.07.2005 16:10

K.a.t.a.f.a.l.k.e.r, подбирай слова.

K.A.T.A.F.A.L.K.E.R 12.07.2005 18:00

Цитата:

Сообщение от Ales
K.a.t.a.f.a.l.k.e.r, подбирай слова.

А что тебя не устраивает? Только если можно, без левых постов - сразу по конкретике


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

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