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

Тема в разделе "Другие", создана пользователем m4igor, 25 авг 2010.

  1. m4igor

    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 - целые и в итоге проверка не работает.... Как решить эту проблему?
    [​IMG]
     
  2. romanriddick

    romanriddick Гость

    никак ...
    пробовал делать аналоговые часы ...
    округляите к и в до нужного знака после комы , только так и можно... кстате при деление в с++
    после 5 - го знака дает ошибку ... тоесть если вы 2 раза 2/3 то результат не совпадет на 5-8 значение
     
  3. Rus59Wolf

    Rus59Wolf Гость

    Уравнение прямой по двум точкам выглядит вроде так
    ((x-x1)/(x2-x1))=((y-y1)/(y2-y1))

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

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    используй такую проверку:

    Код (C++):
    if (abs(y3 - (k * x3 + B)) < 1)
    1 - это точность, опытным путем можешь подобрать оптимальное значение. Если всё остальное правильно - обязано работать, если нет - ошибка где-то так (возможно, в уравнении прямой или еще чего)
     
Загрузка...
Похожие Темы - проблема решении задачи
  1. c0de3r
    Ответов:
    5
    Просмотров:
    126
  2. DobermannTT
    Ответов:
    10
    Просмотров:
    135
  3. SoulPaladin
    Ответов:
    4
    Просмотров:
    131
  4. Artael
    Ответов:
    1
    Просмотров:
    110
  5. ENSLER
    Ответов:
    0
    Просмотров:
    103

Поделиться этой страницей