Mask
Новичок
|
Существуют ли графические решения для сложения и умножения векторов? Функции вычисления: function VectorDotProduct(const V1, V2 : TAffineVector): Single; begin Result:=V1[0]*V2[0]+V1[1]*V2[1]+V1[2]*V2[2]; end; function VectorCrossProduct(const v1, v2 : TAffineVector) : TAffineVector; begin Result[X]:=v1[Y]*v2[Z]-v1[Z]*v2[Y]; Result[Y]:=v1[Z]*v2[X]-v1[X]*v2[Z]; Result[Z]:=v1[X]*v2[Y]-v1[Y]*v2[X]; end; В общем я понимаю, что надо сделать, чтобы получить длину проекции вектора на вектор, и перпендикуляр. Но я не понимаю почему делается именно это? Скажем, теорема Пифагора становится понятна когда её нарисовать. внешняя ссылка удалена Можно ли сделать тоже самое с этими двумя функциями?
|
Всего сообщений: 21 | Присоединился: январь 2007 | Отправлено: 8 янв. 2007 3:02 | IP
|
|
VF
Administrator
|
Google: сложение веркторов, произведение векторов внешняя ссылка удалена Векторное, скалярное произведение. Модуль векторного произведения [ab] равняется площади S параллелограмма, построенного на приведённых к общему началу векторах a и b. Скалярным произведением двух векторов назывется число, равное произведению длины одного из этих векторов на проекцию другого вектора на ось, определяемую первым из указанных векторов.
|
Всего сообщений: 3110 | Присоединился: май 2002 | Отправлено: 8 янв. 2007 8:48 | IP
|
|
Mask
Новичок
|
Цитата: VF написал 8 янв. 2007 8:48 Google: сложение веркторов, произведение векторов внешняя ссылка удалена Векторное, скалярное произведение. Модуль векторного произведения [ab] равняется площади S параллелограмма, построенного на приведённых к общему началу векторах a и b.
А почему длина вектора то ровна : Result:=V1[0]*V2[0]+V1[1]*V2[1]+V1[2]*V2[2]; ? Мы складываем три площади, а получаем длину вектора. Почему?
Скалярным произведением двух векторов назывется число, равное произведению длины одного из этих векторов на проекцию другого вектора на ось, определяемую первым из указанных векторов.
Это можно доказать графически?
|
Всего сообщений: 21 | Присоединился: январь 2007 | Отправлено: 9 янв. 2007 6:40 | IP
|
|
VF
Administrator
|
Цитата: Mask написал 9 янв. 2007 8:40 А почему длина вектора то ровна : Result:=V1[0]*V2[0]+V1[1]*V2[1]+V1[2]*V2[2]; ? Мы складываем три площади, а получаем длину вектора. Почему?
Это скалярное произведение. А складываем мы произведение проекций на X, Y, Z.
|
Всего сообщений: 3110 | Присоединился: май 2002 | Отправлено: 9 янв. 2007 7:25 | IP
|
|
Ntony
Удален
|
Да и не длина это никакая... Результат скалярного произведения векторов - число, равное произведению длин векторов на косинус угла между ними. Это определение, а формула - это то, как данное определение преобразуется в стандартной прямоугольной СК. Графически это доказать просто, пусть даже и через теорему пифагора. Синус угла между векторами, умноженный на длину одного из векторов как раз и даст длину его проекции на другой вектор, ибо проекция вместе с отрезком, соединяющим ее конец с концом вектора дает прямоугольный треугольник (если отложить оба вектора от одной точки). (Сообщение отредактировал Ntony 11 янв. 2007 17:14)
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 10 янв. 2007 0:19 | IP
|
|
Mask
Новичок
|
Всё равно без рисунка не понимаю как из площади ( двухмерность ) получают длину ( одномерность ).
|
Всего сообщений: 21 | Присоединился: январь 2007 | Отправлено: 11 янв. 2007 6:45 | IP
|
|
Mask
Новичок
|
В теормем Пифагора как раз всё правильно. Складывают площади и получают площадь. А тут, нет.
|
Всего сообщений: 21 | Присоединился: январь 2007 | Отправлено: 11 янв. 2007 6:46 | IP
|
|
Ntony
Удален
|
Скажите, вы когда у вектора длину изменяете (растягиваете), вы тоже считаете, что вы из одномерности двухмерность получаете? "Длина вектора" как число - величина одномерная, таки да. Но скалярное произведение векторов - это число, которое равно произведению двух длин (по вашей логике - "площадь") на косинус угла (хм, интересно, в чем вы меряете синусы углов...). И теорема Пифагора тут ни при чем. То, что вы хотите сделать с векторами - это от непонимания того, что на самом деле значит определение этого самого произведения векторов. (Сообщение отредактировал Ntony 11 янв. 2007 17:13)
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 11 янв. 2007 15:07 | IP
|
|
Mask
Новичок
|
Цитата: Ntony написал 11 янв. 2007 15:07 Скажите, вы когда у вектора длину изменяете (растягиваете), вы тоже считаете, что вы из одномерности двухмерность получаете?
Там сначала идёт переход в двухмерность, когда катиты возводятся в квадраты. А потом обратно в одномерность через извлечение корня. На графическом решении это хорошо видно.
"Длина вектора" как число - величина одномерная, таки да. Но скалярное произведение векторов - это число, которое равно произведению двух длин (по вашей логике - "площадь") на косинус угла (хм, интересно, в чем вы меряете синусы углов...).
Ни в чём. Это просто отношение длин. Метр/метр, которые сокращаются.
И теорема Пифагора тут ни при чем. То, что вы хотите сделать с векторами - это от непонимания того, что на самом деле значит определение этого самого произведения векторов.
Так оно и есть. Поэтому и хочу графическое решение, чтобы осмыслить.
|
Всего сообщений: 21 | Присоединился: январь 2007 | Отправлено: 14 янв. 2007 5:20 | IP
|
|
Ntony
Удален
|
Ну можете считать, что скалярное произведение векторов (a,b) равно площади параллелограмма, стороны которого задаются вектором a и вектором, перпендикулярным b, который к тому же лежит в плоскости векторов a,b. Так устроит?
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 14 янв. 2007 11:41 | IP
|
|
|