Есть координатная сетка с одинаковыми интервалами Возьмём к примеру 512, сетка всегда положительна(-512 быть не может) Как наиболее быстро определить точку пересечения c сеткой Иллюстрация

задан 14 Окт '13 17:45

изменен 14 Окт '13 17:56

falcao's gravatar image


179k1631

Точку пересечения чего именно надо определить? На рисунке изображены отрезки, но надо описать, в каком виде они даны.

(14 Окт '13 17:58) falcao

Отрезки заданы начальными и конечными координатами A x1y1 - x2y2 Причём всегда целыми числами Найти точку пересечения с сеткой

(15 Окт '13 9:22) oztro

А каким способом тогда задана сетка? И что делать, если отрезок длинный, и он линии сетки пересекает несколько раз?

(15 Окт '13 9:25) falcao

Обычно отрезки максимум в 1/4 размера сетки, но действительно могу пересекать сетку в углах 2 раза. Спасибо отказался от этой идеи, но успел написать решение на javascripte для частного случая. http://filebeam.com/79d632c44fb10045e66f5b7405be2986.jpg Код var OS = {x:100, y:100}, A = { begin:{x:110, y:94}, end:{x:105, y:104} }, result = {x:undefined, y:100} var x = A.begin.x-A.end.x //5 var y = A.begin.y - A.end.y //-10 var deltaH = A.begin.y - OS.y //-6 var delta = y/deltaH // 1.6666666 if(A.begin.x > A.end.x){ result.x = A.begin.x - ~~(x/delta); }else{ result.x = A.begin.x + ~~(x/delta); }

(15 Окт '13 10:16) oztro
10|600 символов нужно символов осталось
0

Я понял Вашу задачу так (для рассматриваемого частного случая). Есть отрезок, концы которого равны в координатной записи $%(105,104)$% и $%(110,94)$%. Требуется найти его пересечение с линией сетки $%y=100$%. Точка пересечения имеет координаты $%(a,100)$%. Число $%a$% определяется из пропорции: $$\frac{110-a}{a-105}=\frac{94-100}{100-104}=\frac32.$$ Это приводит к линейному уравнению, решая которое, получаем $%a=107$%. В общем случае поступаем аналогично. Значение $%a$%, найденное из уравнения, может быть и не целым. В этом случае его можно округлить до ближайшего целого.

ссылка

отвечен 15 Окт '13 19:12

10|600 символов нужно символов осталось
Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×47

задан
14 Окт '13 17:45

показан
508 раз

обновлен
15 Окт '13 19:12

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru