Сообщество программистов Autodesk в СНГ

ADN Club => Civil 3D API => Тема начата: Алексей (IdeaSoft) от 31-03-2018, 20:14:58

Название: По координатам точки (X, Y) получть высоту TIN-поверхности
Отправлено: Алексей (IdeaSoft) от 31-03-2018, 20:14:58
Возможно ли по координатам  X и Y получить
координату  Z на TIN-поверхности?
Есть такой метод у класса поверхности?
Название: Re: По координатам точки (X, Y) получть высоту TIN-поверхности
Отправлено: Алексей Терно от 31-03-2018, 20:20:42
Есть: FindElevationAtXY
Название: Re: По координатам точки (X, Y) получть высоту TIN-поверхности
Отправлено: Алексей (IdeaSoft) от 31-03-2018, 22:07:33
FindElevationAtXY
Спасибо попробую.
Интересно, а в случае неудачного поиска функция вкернёт 0?
Название: Re: По координатам точки (X, Y) получть высоту TIN-поверхности
Отправлено: Алексей (IdeaSoft) от 31-03-2018, 22:15:54
возвращать 0 думаю не всегда правильно, т.к. 0
это вполне себе нормальная величина высоты поверхности.

Я вот думаю может искть  треугольник, а потом проверить его на null

Код - C# [Выбрать]
  1. TinSurfaceTriangle trg = surface.FindTriangleAtXY(x, y);
  2. if (trg == null)
  3. {
  4. }
Название: Re: По координатам точки (X, Y) получть высоту TIN-поверхности
Отправлено: Алексей Терно от 31-03-2018, 22:30:22
возвращать 0 думаю не всегда правильно, т.к. 0
это вполне себе нормальная величина высоты поверхности.
Эта функция возвращает 0, только если это актуальная отметка поверхности. Если точка находится вне поверхности, то будет исключение: Autodesk.Civil.PointNotOnEntityException: Point Outside Surface.
Название: Re: По координатам точки (X, Y) получть высоту TIN-поверхности
Отправлено: Алексей (IdeaSoft) от 31-03-2018, 22:35:38
Эта функция возвращает 0
А тогда где возвращаемое значение высоты поверхности Z?
Получается, что функция только выполняет проверку на то что высота есть в точке.
Название: Re: По координатам точки (X, Y) получть высоту TIN-поверхности
Отправлено: Алексей (IdeaSoft) от 31-03-2018, 22:40:22
Тогда наверное лучше мне использовать
поиск треугольника с помощью FindTriangleAtXY(...)
а по нему уже высчитывать точку самому.

Название: Re: По координатам точки (X, Y) получть высоту TIN-поверхности
Отправлено: Алексей Терно от 31-03-2018, 22:46:44
А тогда где возвращаемое значение высоты поверхности Z?
Получается, что функция только выполняет проверку на то что высота есть в точке.
Эта функция и возвращает отметку:
Код - C# [Выбрать]
  1. public double FindElevationAtXY(double x, double y);