проблема в решении задачи прямой и точки

  • Автор темы Автор темы m4igor
  • Дата начала Дата начала
M

m4igor

Задача следующая: есть холст размером 680 на 500 пикселей. На ней есть прямая, начальные и конечные значения, которой известны. С помощью мыши делается клик по холсту и становятся известны координаты на x3, y3 на холсте куда кликнули. Мне нужно узнать: находится ли точка с координатой x3, y3 на прямой.
С помощью всем известной формулы, уравнения прямой Y = k * X + b, я вывел как определить коэффициенты k и b
k = (y2 - y1) / (x2 - x1)
b = y1 - k * X1
Ну а потом проверяется условие
if (y3 == (k * x3 + B))
{
........
}
Только проблема в том, что k и b получаются нецелыми, координаты x3, y3 - целые и в итоге проверка не работает.... Как решить эту проблему?
 
никак ...
пробовал делать аналоговые часы ...
округляите к и в до нужного знака после комы , только так и можно... кстате при деление в с++
после 5 - го знака дает ошибку ... тоесть если вы 2 раза 2/3 то результат не совпадет на 5-8 значение
 
Уравнение прямой по двум точкам выглядит вроде так
((x-x1)/(x2-x1))=((y-y1)/(y2-y1))

Пробуй подставлять прямо сюда вместо (х,у)=(х3,у3) и округляй значения. Может проканает
 
используй такую проверку:

C++:
if (abs(y3 - (k * x3 + B)) < 1)
1 - это точность, опытным путем можешь подобрать оптимальное значение. Если всё остальное правильно - обязано работать, если нет - ошибка где-то так (возможно, в уравнении прямой или еще чего)
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab