1 Востаннє редагувалося FakiNyan (14.01.2015 19:16:48)

Тема: Операції над векторами для школярів

Хайо. Тут така справа. Треба дізнатись координату кінця вектора, після того, як ми крутнемо його на 90 градусів.
http://puu.sh/evA6f/d08c2af82f.png
Я от сам пробував це все зробити, але щось не пішло. Думка була така...
По суті, у нас є коло. Довжина цього вектора - радіус. І от я думаю - давайте просто підставим кут, на котрий потрібно повернути вектор в sin та cos, потім помножимо те, що отримали, на довжину цього вектора, і додамо отримані значення до поточних координат точки.
Нехай, точка == (3;2)
sin(90)=1
cos(90)=0
R=sqrt(2^2+3^2)=3.6
x=1*3.6+3
y=0*3.6+2
І виходить, що нова точка == (6.6;2), але очевидно, щось не так.
http://puu.sh/evDZj/084750f004.png
Очевидно, що новий вектор перпендикулярний осі Y, тобто вся ця формула працює так, наче відлік градусів починається від осі Y.
Як  здвинути початок відліку градусів?
p.s. поки дописав, з'явилась думка, що спочатку потрібно дізнатись градус, на котрий відхилений перший вектор, ну ви зрозуміли, а потім вже до нього додати ще 90 градусів і обрахувати нову координату, і потім треба додавати не координату кінця вектору, а координату початку вектору

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P

2 Востаннє редагувалося quez (14.01.2015 19:35:43)

Re: Операції над векторами для школярів

Ну по-перше добре б сумістити початок координат з початком вектора.

А далі x' = x*cosa - y*sina, y' = x*sina + y*cosa

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

3

Re: Операції над векторами для школярів

quez написав:

Ну по-перше добре б сумістити початок координат з початком вектора.

Я це знаю, я так робив, коли мені треба було отримати протилежний напрямок вектору. Просто віднімав кінець вектора від його початку і нормалізував. Ну а так то треба віднімати початок від кінця, щоб привести початок до нуля, ага?

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P

4 Востаннє редагувалося quez (14.01.2015 19:36:58)

Re: Операції над векторами для школярів

Ну а так то треба віднімати початок від кінця, щоб привести початок до нуля, ага?

АгаНавпаки

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

5

Re: Операції над векторами для школярів

quez написав:

Ну а так то треба віднімати початок від кінця, щоб привести початок до нуля, ага?

Ага

Що ще розповісте?

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P

6

Re: Операції над векторами для школярів

Не обновляйте сторінку так часто, я ж дуже швидко виправився

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

7

Re: Операції над векторами для школярів

quez написав:

Не обновляйте сторінку так часто, я ж дуже швидко виправився

то виправляйтесь ще раз
http://puu.sh/evI11/208cf8a933.png

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P

8

Re: Операції над векторами для школярів

Не так.
http://i.piccy.info/i9/0a3fa1f0a2494db9d0791a748ba700c0/1421254446/7862/843963/a.png

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

9

Re: Операції над векторами для школярів

quez написав:

Не так.
http://i.piccy.info/i9/0a3fa1f0a2494db9d0791a748ba700c0/1421254446/7862/843963/a.png

не пойняв, яка різниця

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P

10

Re: Операції над векторами для школярів

Зелений вектор (3, 3) в зеленій системі координат тепер можна просто взяти і повернути. А в червоній це вектор, який починається в (2, 2) і закінчується в (5, 5).

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

11

Re: Операції над векторами для школярів

quez написав:

Зелений вектор (3, 3) в зеленій системі координат тепер можна просто взяти і повернути. А в червоній це вектор, який починається в (2, 2) і закінчується в (5, 5).

ой, викрутились типу, це вже кому як подобається, у вас один вимір і декілька систем, а в мене одна система в декількох вимірах, як слої в фотошопі

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P

12

Re: Операції над векторами для школярів

Ну а де мені треба виправитись, не нагадаєте?

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

13

Re: Операції над векторами для школярів

quez написав:

Ну а так то треба віднімати початок від кінця, щоб привести початок до нуля, ага?

АгаНавпаки

тут

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P

14

Re: Операції над векторами для школярів

Ліл, чогось подумав, що раз початок записаний першим словами, то він має бути записаний першим цифрами.

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

15

Re: Операції над векторами для школярів

quez написав:

Ліл, чогось подумав, що раз початок записаний першим словами, то він має бути записаний першим цифрами.

та, я там теж декілька разів путався

тут спілкуються українці (серед них є програмісти)
https://discord.gg/Zk29v4P

16

Re: Операції над векторами для школярів

FakiNyan написав:

Хайо. Тут така справа. Треба дізнатись координату кінця вектора, після того, як ми крутнемо його на 90 градусів.
http://puu.sh/evA6f/d08c2af82f.png
Я от сам пробував це все зробити, але щось не пішло. Думка була така...
По суті, у нас є коло. Довжина цього вектора - радіус. І от я думаю - давайте просто підставим кут, на котрий потрібно повернути вектор в sin та cos, потім помножимо те, що отримали, на довжину цього вектора, і додамо отримані значення до поточних координат точки.
Нехай, точка == (3;2)
sin(90)=1
cos(90)=0
R=sqrt(2^2+3^2)=3.6
x=1*3.6+3
y=0*3.6+2
І виходить, що нова точка == (6.6;2), але очевидно, щось не так.
http://puu.sh/evDZj/084750f004.png
Очевидно, що новий вектор перпендикулярний осі Y, тобто вся ця формула працює так, наче відлік градусів починається від осі Y.
Як  здвинути початок відліку градусів?
p.s. поки дописав, з'явилась думка, що спочатку потрібно дізнатись градус, на котрий відхилений перший вектор, ну ви зрозуміли, а потім вже до нього додати ще 90 градусів і обрахувати нову координату, і потім треба додавати не координату кінця вектору, а координату початку вектору

Тут є все що тобі потрібно.

Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..
Подякували: FakiNyan, 0xDADA11C72