1

Тема: Як дізнатись координати точки, маючи лише точку початку, напрям, та ди

станцію. Дивіться яка справа. Є дві координати, наприклад, перша (1;3) та друга (7;5). Початок це (1;3). Як дізнатись координату точки, котру можна отримати, якщо з (1;3) ми пустимо вектор в сторону (7;5) на відстань 3. Це мені потрібно для того, щоб ставити на місце камеру, якщо вона буде занадтно далеко віддалятись від персонажа. Ну знаєте, є число "відстань", і якщо відстань від персонажа до камери більша за цю "відстань", то треба камеру підсунути до персонажа ближче. Я в школі погано вчив оце все, методом тика зрозумів, що без теореми Піфагора відстань між координатами не знайти, і написав таку формулку. Якщо є дві координати, A(x,y) та B(i,j), то відстань можна знайти так:

distance = sqrt( (i-x)^2 + (j-y)^2 )   

А от як знайти координату іншої точки, маючи лише координату початкової, дистанцію, та координату кінцевої точки. Ну ви зрозуміли, ага?
традиційна авторська графіка

Прихований текст
http://puu.sh/6jYyO.png
All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

2 Востаннє редагувалося koala (14.01.2014 01:15:49)

Re: Як дізнатись координати точки, маючи лише точку початку, напрям, та ди

1. Зсуваємо початок координат в початкову точку за формулою x`=x-2, y`=y-3:
Було (2;3); (?;?); (5;6)
Стало (0;0); (?;?); (3;3)
2. Знаходимо, який шматок відрізку нам потрібен: 3/sqrt(3^2+3^2) = 0.707. Множимо цей коефіціент на координати кінця, отримуємо нашу точку:
(0;0); (2.121;2.121); (3;3)
3. Повертаємось до старих координат x=x`+2, y=y`+3:
(2;3); (4.121;5.121); (5;6)

В загальному вигляді (l - довжина нового відрізка, (xc, yc) - координати точки):
xc = ( i - x ) * l / sqrt( ( i - x) ^ 2 + ( j - y ) ^ 2 ) + x,
yc = ( j - y ) * l / sqrt( ( i - x) ^ 2 + ( j - y ) ^ 2 ) + y;
або якщо позначити d = sqrt( ( i - x) ^ 2 + ( j - y ) ^ 2 )
xc = ( i - x ) * l / d + x,
yc = ( j - y ) * l / d + y.

П.С. Ви на першому курсі? Аналітичної геометрії ще нема?

Подякували: FakiNyan, Bartash, Ярослав3

3

Re: Як дізнатись координати точки, маючи лише точку початку, напрям, та ди

koala написав:

1. Зсуваємо початок координат в початкову точку за формулою x`=x-2, y`=y-3:
Було (2;3); (?;?); (5;6)
Стало (0;0); (?;?); (3;3)
2. Знаходимо, який шматок відрізку нам потрібен: 3/sqrt(3^2+3^2) = 0.707. Множимо цей коефіціент на координати кінця, отримуємо нашу точку:
(0;0); (2.121;2.121); (3;3)
3. Повертаємось до старих координат x=x`+2, y=y`+3:
(2;3); (4.121;5.121); (5;6)

В загальному вигляді (l - довжина нового відрізка, (xc, yc) - координати точки):
xc = ( i - x ) * l / sqrt( ( i - x) ^ 2 + ( j - y ) ^ 2 ) + x,
yc = ( j - y ) * l / sqrt( ( i - x) ^ 2 + ( j - y ) ^ 2 ) + y;
або якщо позначити d = sqrt( ( i - x) ^ 2 + ( j - y ) ^ 2 )
xc = ( i - x ) * l / d + x,
yc = ( j - y ) * l / d + y.

П.С. Ви на першому курсі? Аналітичної геометрії ще нема?

на 4, у нас геометрії взагалі небуло, але якби й була, то я б її тоді не вчив. От якби зара була, то я б вчився, а в школі мені не до цього було =(

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

4

Re: Як дізнатись координати точки, маючи лише точку початку, напрям, та ди

koala, чуйте, а поясніть про ось це

3/sqrt(3^2+3^2) = 0.707

я то вже перевірив цю супер формулу. Ну намалював відрізок від 0 до 6, а потім вирішив знайти, де буде на відрізку три. Ну очевидно, що воно і буде там, де 3. Але я по формулі оцій порахував

3/6=0,5;
0.5*6=3;

А як це логічно зрозуміти в варіанті з двокомпонентними координатами? Ми ж беремо відстань, ділимо на довжину відрізка, тобто дізнаємось, скільки разів відрізок помістится у нашій довжині, а потім множимо це на координату відрізка, а чому ми робимо так? а-то я щось туплю, може це якась там така стара супер формула, розуміти котру не треба, а треба лише запам'ятати?

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

5

Re: Як дізнатись координати точки, маючи лише точку початку, напрям, та ди

Геометрію треба було вчити. Наприклад, вектори. Нам треба знайти шматок вектора (i - x, j - y) заданої довжини. Ми знаходимо, яку частину довжини треба взяти (l/d) і розкладаємо вектор на суму векторів-проекцій на вісі координат, після чого беремо відповідні шматки кожної проекції і складаємо їх назад.

Подякували: FakiNyan1

6

Re: Як дізнатись координати точки, маючи лише точку початку, напрям, та ди

koala написав:

Геометрію треба було вчити. Наприклад, вектори. Нам треба знайти шматок вектора (i - x, j - y) заданої довжини. Ми знаходимо, яку частину довжини треба взяти (l/d) і розкладаємо вектор на суму векторів-проекцій на вісі координат, після чого беремо відповідні шматки кожної проекції і складаємо їх назад.

я пішов читати про вектори...

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...