1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "Остальные языки программирования", создана пользователем m4igor, 25 авг 2010.

  1. m4igor

    m4igor Гость

    Репутация:
    0
    Задача следующая: есть холст размером 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 - целые и в итоге проверка не работает.... Как решить эту проблему?
    проблема в решении задачи прямой и точки
     
  2. romanriddick

    romanriddick Гость

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

    Rus59Wolf Гость

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

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

    acorn PHP Developer

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

    Код:
    if (abs(y3 - (k * x3 + B)) < 1)
    1 - это точность, опытным путем можешь подобрать оптимальное значение. Если всё остальное правильно - обязано работать, если нет - ошибка где-то так (возможно, в уравнении прямой или еще чего)
     
Загрузка...
Похожие Темы - проблема решении задачи
  1. bb-8
    Ответов:
    1
    Просмотров:
    36
  2. Apton
    Ответов:
    0
    Просмотров:
    39
  3. Anonimyc
    Ответов:
    0
    Просмотров:
    26
  4. VikTor1990
    Ответов:
    3
    Просмотров:
    82
  5. erlan1749
    Ответов:
    0
    Просмотров:
    41

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