Вниз  Геометрия в коде
- 6.02.2013 / 17:59
BorderFol
  Пользователь

BorderFol 
Сейчас: Offline
Чтобы повернуть матрицу 3х3 на угол, нужно матрицу поворота умножить на свою матрицу ?
- 7.02.2013 / 11:17
DominaN
  Пользователь

DominaN 
Сейчас: Offline
BorderFol, да. Только сначала привести их к нулевым координатам, иначе ерунда получится.

Изменено DominaN (7.02 / 11:18) (всего 1 раз)
- 7.02.2013 / 14:57
Ecio
  Пользователь

Ecio 
Сейчас: Offline
В универе это алгебра=)
- 7.02.2013 / 19:02
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
Чтобы проверить пересечение двух отрезков, можно создать массив из всех точек одного отрезка, и всех точек другого, и проверить , есть ли одинаковая точка в обох массивах. Это только теоретически.
- 7.02.2013 / 19:15
ckrocket
  Пользователь

ckrocket 
Сейчас: Offline
Dinisimys (07.02.2013/19:02)
Чтобы проверить пересечение двух отрезков, можно создать массив из всех точек одного отрезка, и всех точек другого, и проверить , есть ли одинаковая точка в обох массивах. Это только теоретически.
нет. это очень не удобно и жрет много памяти.
нужно в школе учиться было(или слушать, не знаю чем вы там занимались).
В полезных кодах я выкладывал код, находящий точку пересечения ;)
- 7.02.2013 / 19:19
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
ckrocket, в школе слушаю, но об этом нам не говорили, вроде :)
- 7.02.2013 / 19:21
ckrocket
  Пользователь

ckrocket 
Сейчас: Offline
Dinisimys, это 5-7 класс где-то.
Значит плохо слушали. Нужно уметь практически свои знания применять.
Об этом не могли не говорить.
Кстати идея слишком безумная. Очень производительность зависит от длины отрезков

Изменено ckrocket (7.02 / 19:22) (всего 1 раз)
- 7.02.2013 / 19:24
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
Процедура ищет пересечение двух отрезков заданных своими конечными точками. Первый отрезок: (x1(1),y1(1));(x2(1),y2(1)). Второй отрезок: (x1(2),y1(2));(x1(2),y1(2)). В результате может получится три варианта пересечения: точка, отрезок, пустое множество.

  Прямая содержащая i-й отрезок задается при помощи уравнений:
x=x1(i)+t(i)(x2(i)-x1(i))
y=y1(i)+t(i)(y2(i)-y1(i))
  при этом точка на прямой принадлежит отрезку, если t лежит внутри отрезка [0,1]. Следовательно, пересечением отрезков будет точка если существует решение (t(1),t(2)) системы:
t(1)(x2(1)-x1(1))+t(2)(x1(2)-x2(2))=x1(2)-x1(1)
t(1)(y2(1)-y1(1))+t(2)(y1(2)-y2(2))=y1(2)-y1(1)
  и при этом и t(1) и t(2) лежат в отрезке [0,1]. Если хотя бы одно из t(i) не удовлетворяет этому условию, то пересечением отрезков будет пустое множество.

Вопрос усложняется если не существует решения системы, тогда либо прямые содержащие отрезки параллельны и пересечение отрезков пусто, либо они совпадают и пересечение зависит от взаимного расположения концов отрезков на прямой.

В результате работы процедуры, вид пересечения можно определить рассматривая переменную s, а именно: Если s=0, то пересечение является пустым множеством. Если s=1, то пересечение - точка и ее координаты находятся в переменных x,y. Если s=2, то пересечение отрезок и координаты его концов возращаются в переменных x11,y11;x12,y12.
- 7.02.2013 / 19:33
Dinisimys
  Пользователь

Dinisimys 
Сейчас: Offline
ckrocket, мы начинали учить векторы с 9 класса, и то изучались только основы. Такого мы не учили. Возможно школьные программы отличаются.
- 7.02.2013 / 19:44
ckrocket
  Пользователь

ckrocket 
Сейчас: Offline
Dinisimys (07.02.2013/19:33)
ckrocket, мы начинали учить векторы с 9 класса, и то изучались только основы. Такого мы не учили. Возможно школьные программы отличаются.
векторы там не нужны
Наверх  Всего сообщений: 86
Фильтровать сообщения
Поиск по теме
Файлы топика (5)