|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.07.2010, 17:07 | #1 |
Форумчанин
Регистрация: 31.12.2008
Сообщений: 634
|
вычисление траектории
Всем привет. есть огромный вопрос по математическим вычислениям
Теперь сама суть значит представтье себе координационную сетку, в центре который у нас будет центр нашего неровного круга. а на осях будет в хаотичном порядке распологаться 4 точки, которые должны между собой соединиться плавными дугами, тем самым образовав замкнутое пространство (ну представтье себе помятый круг=) ) . так вот, надо с помощью формул (ибо такие вещи будут просчитываться в джаваскрипте или в рнр) расчитать траектории , то есть определить весь путь по координатам (как полет спутника))) . Какие данные на входе ? Координаты центра и четрыхе точек в формает (координата х, координата у). Что должно быть на выходе ? массив координат по которым будет проложена это траектория. |
02.07.2010, 20:10 | #2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Пусть точки по осям расположены так
A : TPoint = (x: 0; y: 100); B : TPoint = (x:150; y: 0); C : TPoint = (x: 0; y:-200); D : TPoint = (x:-50; y: 0); Вычисляем: dx := (B.x - D.x) div 6; dy := (A.y - C.y) div 6; p1 := A; p1.x := dx; p8 := A; p8.x := -dx; p2 := B; p2.y := dy; p3 := B; p3.y := -dy; p4 := C; p4.x := dx; p5 := C; p5.x := -dx; p6 := D; p6.y := -dy; p7 := D; p7.y := dy; Получаем четыре кривые Безье с опорными точками: A P1 P2 B B P3 P4 C C P5 P6 D D P7 P8 A Для каждой кривой вычисляем необходимое количество точек по формуле p := (1-t)^3*p0 + 3t(1-t)^2*p1 + 3t^2(1-t)*p2 + t^3*p3 t = [0..1] p0, p1, p2, p3 - опорные точки Получаем что-то вроде этого: |
02.07.2010, 20:25 | #3 |
Форумчанин
Регистрация: 31.12.2008
Сообщений: 634
|
вроде все круто) но ничего не понял
что такое div в этой записи (B.x - D.x) div 6; и поучается только несколько точек, а мне надо прям траекторию просчитать, что бы каждая точка, что бы в какой бы точке не находился некий объект - я четко мог ответить - внутри овала он или нет |
02.07.2010, 20:38 | #4 | ||
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Цитата:
Кстати, 6 определяет натяжение. Можно попробовать другое значение - чем меньше, чем менее натянута будет кривая. Цитата:
x := (1-t)^3*A.x + 3t(1-t)^2*P1.X + 3t^2(1-t)*p2.x + t^3*B.x y := (1-t)^3*A.y + 3t(1-t)^2*P1.y + 3t^2(1-t)*p2.y + t^3*B.y меняем t от 0 до 1 с некоторым шагом (смотря сколько точек нужно получить) и вычисляем координаты. далее для (B P3 P4 C) x := (1-t)^3*B.x + 3t(1-t)^2*P3.X + 3t^2(1-t)*p4.x + t^3*C.x y := (1-t)^3*B.y + 3t(1-t)^2*P3.y + 3t^2(1-t)*p4.y + t^3*C.y и далее для (C P5 P6 D) и (D P7 P8 A). Последний раз редактировалось alexBlack; 02.07.2010 в 20:41. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движение курсора по траектории | DarkHacker | Помощь студентам | 0 | 19.03.2010 18:05 |
Перемещение рисунка по траектории | Noob333 | Помощь студентам | 1 | 28.04.2009 10:42 |
Движение фигуры по траектории | Dgohn | Общие вопросы Delphi | 3 | 08.01.2009 09:36 |
Анимация движения точки по траектории | ariant | Microsoft Office Excel | 4 | 25.12.2008 06:28 |