powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Геометрия c TPointF. Как правильно использовать CrossProduct, DotProduct
4 сообщений из 4, страница 1 из 1
Геометрия c TPointF. Как правильно использовать CrossProduct, DotProduct
    #39530661
hottabych31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Пишу тут небольшую софтину для работы с геометрией. Постоянно затыки с точностью расчетов. Использую для хранения точек TPointF.

Например, простейшая функция проверки принадлежности точки окружности: SameValue(x*x+y*y,r*r) возвращает false. А должно быть true.
Далее, принадлежность точки прямой - SameValue((p2-p1).CrossProduct(M-P1)) - аналогично.

Из ситуации вышел пока что заданием допустимой погрешности (0.5 в первом случае и 0.1 во втором).

Как поступить правильно?
...
Рейтинг: 0 / 0
Геометрия c TPointF. Как правильно использовать CrossProduct, DotProduct
    #39530693
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hottabych31Как поступить правильно?

Задание погрешности это и есть самый правильный путь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Геометрия c TPointF. Как правильно использовать CrossProduct, DotProduct
    #39530697
hottabych31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
Спасибо, буду писать больше тестов.
...
Рейтинг: 0 / 0
Геометрия c TPointF. Как правильно использовать CrossProduct, DotProduct
    #39530792
Фотография roschinspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hottabych31, там у TPointF есть метод EqualsTo
А для задания погрешности есть рекомендованные константы
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
System.Math.Vectors
  TEpsilon = record
  const
    Matrix = 1E-5;
    Vector = 1E-4;
  end;

FMX.Consts
  TEpsilonHelper = record helper for TEpsilon
  const
    Scale = 1E-4;
    FontSize = 1E-2;
    Position = 1E-3;
    Angle = 1E-4;
  end;
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Геометрия c TPointF. Как правильно использовать CrossProduct, DotProduct
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]