Текущий архив: 2004.04.18;
Скачать: CL | DM;
ВнизКак работать с векторами? Найти похожие ветки
← →
Norlin © (2003-09-08 19:13) [0]Люди, помогите пожалуйста!
Как написать функцию сложения векторов? (не скалярное, а векторное)
Уже вторую неделю мучаюсь, не получается, хотя, вроде бы, всё просто :((
Или, может быть, у кого-нибудь есть алгоритм, позволяющий рассчитать, как изменяется ускорение тела при воздействии на него определённой силы?
Всем, кто поможет, огромное спасибо!!
← →
Рамиль © (2003-09-08 19:37) [1]Ну уж, формула...
a = (x1, y1)
b = (x2, y2)
c = a + b = (x1+x2, y1+y2)
← →
MeF88 © (2003-09-08 20:05) [2]Читай геометрии с 7 до 9 класс.
← →
TButton © (2003-09-08 20:58) [3]это и называется скалярное сложение векторов
← →
Asteroid © (2003-09-08 21:13) [4]?? Скалярное/векторное сложение??? Умножение - да, а вот сложение - что-то новое для меня...
← →
марсианин (2003-09-08 23:09) [5]Или, может быть, у кого-нибудь есть алгоритм, позволяющий рассчитать, как изменяется ускорение тела при воздействии на него определённой силы?
второй закон Ньютона (по школьному)..
← →
Micah'GF (2003-09-09 07:28) [6]млин... ну мне ведь тоже интересно..... книжки читать долго... приведите примерчик.
← →
MeF88 © (2003-09-09 16:17) [7]F=ma ;-)
a - вектор
Далее V=V0+a, где V0 - скорость на предыдущем шаге, a - ускорение, V-текущая скорость. Причем все три - вектора.
Между прочим - я еще до высшей математики не дошел, но разве есть векторная сумма векторов? ;-)
← →
Рамиль © (2003-09-09 16:26) [8]
> это и называется скалярное сложение векторов
Вектор определяется точкой на плоскости (в 3D, 4D, ...) Как интересно можно их сложить еще? Или написать лекцию по линейной алгебре?
← →
Norlin © (2003-09-09 21:39) [9]Всем, конечно, спасибо, но вы не поняли вопрос: мне нужно не скалярное сложение, а векторное...
← →
MBo © (2003-09-10 05:45) [10]это ты не понял - сложение векторов не бывает скалярным или векторным - оно одно, дано в первом же ответе. можно, конечно, его назвать векторным, раз уж результат - вектор, но никто так не говорит.
← →
Думкин © (2003-09-10 06:38) [11]%-)
Но ведь можно.
S(a,b) = |a|+|b|
Операция - инварианта при заданном скалярном произведении, коммутативна.
И пусть в меня плюнут, если это не скалярное сложение векторов.
:-)
← →
MeF88 © (2003-09-10 10:43) [12]Между прочим
S(a,b)=sqrt(sqr(|a|)+sqr(|b|))
← →
il_ © (2003-09-10 16:17) [13]Вектор определяется точкой на плоскости (в 3D, 4D, ...) Как интересно можно их сложить еще? Или написать лекцию по линейной алгебре?
Вообще-то вектор на плоскости определяется точкой и направлением, а только точкой он определяется на прямой в 1D
← →
Рамиль © (2003-09-10 16:31) [14]
> il_ ©
Если подходить с такой точки зрения, еще и длиной.
Точка это конец вектора(это где стрелочка рисуется), а начало вектора считается совпадающим с началом координат.
← →
Думкин © (2003-09-10 16:49) [15]> [14] Рамиль © (10.09.03 16:31)
Это в векторном пространстве и то ...каком.
А в афинном - упорядоченная пара точек. Просто векторное пространство из афинного можно выделить зафиксировав точку - в вашем случае начало координат(а это может быть любая точкка), но ведь и координаты сразу вводить не обязательно - потом уж.
В ВП изначально длины нет. Если есть длина - то это уже векторное пространство с метрикой, тут же и скалярное валяется.
← →
Koreolis © (2003-10-15 11:18) [16]Norlin:
Если ты хочешь замутить телегу: летит шарик - бабах об стену - отскочил - столкнулся с другим - поменял направление(тот другой тоже) и т.д. ТО: тебе надо для каждого объекта хранить две скорости по каждой координате(для 2Д). Два ускорения по каждой координате. Массу объекта. Угол (для удобства отображения на панели информации - в градусах) тяги движка. СИЛА ТЯГИ движка(на сколько приращивается ускорение объекта за еденицу времени(за один перепрощет объекта)).
За каждый цикл: Изменяем ускорениЯ по осям в соответствии с тягой движка. Зная массу и ускорениЯ росчитываем силу трения(тоже два вектора).
Теперь смотрим: а не столкнулся ли наш объект? Если да, то: Производим операцию сложения между векторамИ(в этом-то и вся фича - два вектора. два расчёта). Оба объекта подействовали друг на друга. У обоих объектов изменились вектора ускорения.(по непомню какому закону физики расчитывать надо, но что-то очень простое, кажется про энерцию)
Зная ускорения изменяем скорости. А зная скорость изменяем координаты. Усё.
← →
Koreolis © (2003-10-15 11:17) [17]Norlin:
Если ты хочешь замутить телегу: летит шарик - бабах об стену - отскочил - столкнулся с другим - поменял направление(тот другой тоже) и т.д. ТО: тебе надо для каждого объекта хранить две скорости по каждой координате(для 2Д). Два ускорения по каждой координате. Массу объекта. Угол (для удобства отображения на панели информации - в градусах) тяги движка. СИЛА ТЯГИ движка(на сколько приращивается ускорение объекта за еденицу времени(за один перепрощет объекта)).
За каждый цикл: Изменяем ускорениЯ по осям в соответствии с тягой движка. Зная массу и ускорениЯ росчитываем силу трения(тоже два вектора).
Теперь смотрим: а не столкнулся ли наш объект? Если да, то: Производим операцию сложения между векторамИ(в этом-то и вся фича - два вектора. два расчёта). Оба объекта подействовали друг на друга. У обоих объектов изменились вектора ускорения.(по непомню какому закону физики расчитывать надо, но что-то очень простое, кажется про энерцию)
Зная ускорения изменяем скорости. А зная скорость изменяем координаты. Усё.
← →
Darkwing © (2003-10-15 21:16) [18]Да и вот ещё замечание:
>как изменяется ускорение тела при воздействии на него >определённой силы?
Ускорение вроде как не изменяется. Изменяется скорость.
Вот V - вектор скорости {vx, vy, vz}
a - вектор ускорения {ax, ay, az}
За каждую секунду скорость вырастает на величину ускорения
V := V + a то есть Vnext {vx+ax, vy+ay, vz+az}
за следующую секунду скорость опять изменится на величину ускорения, а само ускорение какое было в начале, такое и останется. (Оно неизменно, в случае, если к телу приложена сила)
← →
Darkwing © (2003-10-15 21:26) [19]Само же ускорение можно посчитать так:
F - вектор силы {fx, fy, fz}
m - масса тела
а := F/m то есть {ax, ay, az} := {fx/m, fy/m fz/m}
а если известны отдельно направление (направляющие косинусы) и величина силы |F| то силу можно посчитать так:
|F| := {|F|*cosx, |F|*cosy, |F|*cosz}
где cos... это косинусы углов вектора силы к координатным осям.
Больше мне сказать нечего.
← →
resheto (2003-10-15 21:36) [20]Ты дай определение того что понимаеш под "векторным" сложением векторов, а тогда уж может ктото тебе и скажет как оно делаеться.
← →
Koreolis © (2003-10-17 10:27) [21]1)Скалярный вектор - просто напросто число. И скалярное сложение - это сложение чисел.
2)Вектор в плане геометрии - набор координат конца вектора(начало в нуле). Для нормального движения тела надо расчитывать как минимум две силы. Т.е. два вектора. Результирующий между ними - см первый же ответ.
Для расчёта ускорения, скорости и т.д. - см ответы DarkWind"а. Мне кажется, что больше неясностей недолжно возникнуть.
← →
Стекляшкин (2003-10-17 14:15) [22]1)Скалярный вектор - просто напросто число. И скалярное сложение - это сложение чисел.
Скалярного вектора не бывает, бывает скалярная величина, характеризующая его(вектора) длину.
2)Вектор в плане геометрии - набор координат конца вектора(начало в нуле).
Нет не так. Вектор это не просто линия в пространстве или на плоскости. Не нужно пытаться себе представить вектор. Если я задам вектор A и Б, то вектор С = А - Б не будет начинаться в нуле, хотя, тем меннее, это есть вектор
← →
Goorus (2003-10-19 18:37) [23]Воспользуйся юнитом Geometry из GLScene, там много разнообразных функций для работы с векторами.
← →
Думкин © (2003-10-20 07:24) [24]
> [22] Стекляшкин (17.10.03 14:15)
Вектор - это элемент векторного пространства.
А если про 0 и т.д. - это к афинному пространству.
Страницы: 1 вся ветка
Текущий архив: 2004.04.18;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.034 c