| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Рисование на canvas в DELPHI |
| Автор: Faraon 20.10.2006, 14:12 |
| У меня такая проблема. Мне необходимо создать простенький графический редактор. Вся информация о рисунке сохраняется в виде координат в отдельном файле. Я затрудняюсь написать процедуру, которая бы выделяла выбранную мною линию. Пользуюсь таким методом: при нажатии кнопки мыши if (x-x1)*(y2-y1)=(y-y1)*(x2-x1) then //прорисовываю линию с новым цветом x,y - координаты мыши при нажатии кнопки x1,y1,x2,y2 - координаты линии Работает только для вертикальных или горизонтальных линий. Подскажите, как выбирать наклонную линию? |
| Автор: drkot 20.10.2006, 14:28 |
непонятно в чем смысл условия |
| Автор: Nicholas_S 20.10.2006, 17:42 |
| drkot, смысл не понятен, потому что либо школа давно прошла, либо прошла очень легко Faraon, дело в том, что когда ты указываешь точку мышой, то координаты есть целые числа (в пикселях). Поэтому, подставляя в уравнение прямой, не получется верное равенство, т.к. точка (x, y) не принадлежит линии. Тебе следует сделать "приближенную" проверку. Как? Подумай немножко, потому как решение простое, а самому получить его приятнее. |
| Автор: Alexeis 20.10.2006, 18:00 |
| Faraon, ну для начала надо проверить попадает ли точка в прямоугольник, образованый начальной и конечной точкой отрезка, затем проверять, указаное условие, но проверять не ТОЧНО! , а с определенной заданной погрешностью, скажем 3 - 5 единиц человек не снайпер, он не может так точно попасть на линию, да и сама линия чертится НЕ ТОЧНО, а по приближенному алгоритму. Так что то что видно на экране совпадает, с теоретическим, только для гоизонтальных и вертикальных линий, так как только они могут рисоватся точно, все остальное рисуется "с запасом" Добавлено @ 18:02 ps. Уравнение в целом составлено верное. |
| Автор: Nicholas_S 20.10.2006, 20:02 |
| alexeis1, небольшое замечание на коммент: "сама линия чертится НЕ ТОЧНО" не играет роли при получении координат точки, т.к. визуальное отображение не влияет на точность расчета формулы. "Уравнение в целом составлено верное" - почему в целом? Верное, верное. |
| Автор: Alexeis 20.10.2006, 21:24 | ||
Потому что должно быть неравенство, а не уравнение. |
| Автор: rounin 25.10.2006, 14:27 | ||||
|
| Автор: Faraon 25.10.2006, 22:05 |
| rounin. Огромное тебе спасибо. Очень помог. Я правильно понял? Sens - это чувствительность??? |
| Автор: Alexeis 26.10.2006, 21:09 |
| Модератор: Тема разделена Новая тема находтся по адресу http://forum.vingrad.ru/index.php?showtopic=118446 И называется. "Рисование линий внутри уже существующих линий" Faraon, никто не запрещает задавать новые вопросы, просто для этого нужно создавать новые темы |