По координатам точки (X, Y) получть высоту TIN-поверхности

Автор Тема: По координатам точки (X, Y) получть высоту TIN-поверхности  (Прочитано 2994 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Возможно ли по координатам  X и Y получить
координату  Z на TIN-поверхности?
Есть такой метод у класса поверхности?
« Последнее редактирование: 31-03-2018, 22:08:33 от Алексей (IdeaSoft) »

Отмечено как Решение Александр Ривилис 01-04-2018, 17:58:25

Оффлайн Алексей Терно

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Есть: FindElevationAtXY

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
FindElevationAtXY
Спасибо попробую.
Интересно, а в случае неудачного поиска функция вкернёт 0?

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
возвращать 0 думаю не всегда правильно, т.к. 0
это вполне себе нормальная величина высоты поверхности.

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

Код - C# [Выбрать]
  1. TinSurfaceTriangle trg = surface.FindTriangleAtXY(x, y);
  2. if (trg == null)
  3. {
  4. }

Оффлайн Алексей Терно

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
возвращать 0 думаю не всегда правильно, т.к. 0
это вполне себе нормальная величина высоты поверхности.
Эта функция возвращает 0, только если это актуальная отметка поверхности. Если точка находится вне поверхности, то будет исключение: Autodesk.Civil.PointNotOnEntityException: Point Outside Surface.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Эта функция возвращает 0
А тогда где возвращаемое значение высоты поверхности Z?
Получается, что функция только выполняет проверку на то что высота есть в точке.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Тогда наверное лучше мне использовать
поиск треугольника с помощью FindTriangleAtXY(...)
а по нему уже высчитывать точку самому.


Оффлайн Алексей Терно

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
А тогда где возвращаемое значение высоты поверхности Z?
Получается, что функция только выполняет проверку на то что высота есть в точке.
Эта функция и возвращает отметку:
Код - C# [Выбрать]
  1. public double FindElevationAtXY(double x, double y);