Здравствуйте.
Уверен, что это задача стандартная, но не могу никак найти на неё ответ. Мозг совершенно отказывается что-то придумывать...
Насколько я помню, в плоскости это делается просто - по всем парам соседних точек складываются произведения полусуммы X-ов и разности Y-ков... a вот как быть в пространстве, при условии, что плоскость многоугольника ориентирована произвольным образом? Надо как-то перейти к новой плоской системе координат, и я что-то не пойму как...
И плюс ещё не знаю точно, будет ли это работать для невыпуклого или самопересекающегося многоугольника?
P. S. A если есть какая-нибудь готовая функция в Delphi для этого или в каких-нибудь библиотеках типа OpenGL, было бы вообще шикарно...
Площадь плоского многоугольника в трёхмерной системе координат
Площадь плоского многоугольника в трёхмерной системе координат
Последний раз редактировалось E3605 27 ноя 2019, 18:25, всего редактировалось 1 раз.
Причина: test
Причина: test
Площадь плоского многоугольника в трёхмерной системе координат
Разбиваете на треугольники и для каждого из них считаете векторное произведение. Половина модуля вектора - площадь нужного треугольника.
Или что то же самое - считаете площади 3х проекций на плоскости координат, a дальше корень из суммы 3х квадратов
Или что то же самое - считаете площади 3х проекций на плоскости координат, a дальше корень из суммы 3х квадратов
Последний раз редактировалось qazxsw 27 ноя 2019, 18:25, всего редактировалось 1 раз.
Причина: test
Причина: test
Площадь плоского многоугольника в трёхмерной системе координат
del
Последний раз редактировалось ALEX165 27 ноя 2019, 18:25, всего редактировалось 1 раз.
Причина: test
Причина: test
Площадь плоского многоугольника в трёхмерной системе координат
Полчаса набирал развернутый ответ c длинными формулами и границами их применимости.E3605 писал(а):Source of the post
Насколько я помню, в плоскости это делается просто - по всем парам соседних точек складываются произведения полусуммы X-ов и разности Y-ков... a вот как быть в пространстве, при условии, что плоскость многоугольника ориентирована произвольным образом? Надо как-то перейти к новой плоской системе координат, и я что-то не пойму как...
И плюс ещё не знаю точно, будет ли это работать для невыпуклого или самопересекающегося многоугольника?
A потом случайно прибил
Теперь напишу кратко:
Проектируете многоугольник на координатную плоскость (забываете про одну координату), ищете площадь и делите на косинус угла между исходной плоскостью и плоскостью, на которую спроектировали.
Ладно, наберу еще раз (не все, a сколько осилю).E3605 писал(а):Source of the post
И плюс ещё не знаю точно, будет ли это работать для невыпуклого или самопересекающегося многоугольника?
Для произвольного (не обязательно выпуклого, возможно, имеющего дыры, но не самопересекающегося) многоугольника справедлива такая формула:
, где - произвольная точка плоскости, - вершины, , длины сторон, a - единичные векторы, направленные вовне многоугольника.
Последний раз редактировалось VAL 27 ноя 2019, 18:25, всего редактировалось 1 раз.
Причина: test
Причина: test
Площадь плоского многоугольника в трёхмерной системе координат
VAL писал(а):Source of the post
Проектируете многоугольник на координатную плоскость (забываете про одну координату), ищете площадь и делите на косинус угла между исходной плоскостью и плоскостью, на которую спроектировали.
Действительно. Выпало из головы. Вот только если вопрос заключается в написании процедурки для такого, видимо процедурка должна начать c того, что выбрать из этих 3х координатных плоскостей ту, к которой нужная плоскость не стоит боком (чтоб не было деления на 0, которое нам ничего не даст) A поэтому для написания программки я бы все-таки выбрал корень из суммы квадратов проекций
Последний раз редактировалось qazxsw 27 ноя 2019, 18:25, всего редактировалось 1 раз.
Причина: test
Причина: test
Площадь плоского многоугольника в трёхмерной системе координат
Угу. B посте, который я случайно убил, у меня про это было написаноqazxsw писал(а):Source of the postVAL писал(а):Source of the post
Проектируете многоугольник на координатную плоскость (забываете про одну координату), ищете площадь и делите на косинус угла между исходной плоскостью и плоскостью, на которую спроектировали.
Действительно. Выпало из головы. Вот только если вопрос заключается в написании процедурки для такого, видимо процедурка должна начать c того, что выбрать из этих 3х координатных плоскостей ту, к которой нужная плоскость не стоит боком (чтоб не было деления на 0, которое нам ничего не даст)
Впрочем, странник, который задал вопрос, похоже, уже далеко.
Последний раз редактировалось VAL 27 ноя 2019, 18:25, всего редактировалось 1 раз.
Причина: test
Причина: test
Площадь плоского многоугольника в трёхмерной системе координат
A чем не нравится #2?
,
где: - векторы вершин и , n - число вершин.
,
где: - векторы вершин и , n - число вершин.
Последний раз редактировалось ALEX165 27 ноя 2019, 18:25, всего редактировалось 1 раз.
Причина: test
Причина: test
Площадь плоского многоугольника в трёхмерной системе координат
A он чем-то кроме записи отличается от "посчитать 3 проекции и взять корень из суммы квадратов от них"? Если я правильно понял, то этот S - вектор, a надо площадь те модуль этого вектора. A модуль его как раз корень из суммы квадратов, притом не удивлюсь если значения его компонент будут точно те, что и площади проекций (разве что мб знаки будет иметь, но и площади проекций без знаков будут только после применения модуля)
Последний раз редактировалось qazxsw 27 ноя 2019, 18:25, всего редактировалось 1 раз.
Причина: test
Причина: test
Площадь плоского многоугольника в трёхмерной системе координат
qazxsw писал(а):Source of the post
A он чем-то кроме записи отличается от "посчитать 3 проекции и взять корень из суммы квадратов от них"? Если я правильно понял, то этот S - вектор, a надо площадь те модуль этого вектора. A модуль его как раз корень из суммы квадратов, притом не удивлюсь если значения его компонент будут точно те, что и площади проекций (разве что мб знаки будет иметь, но и площади проекций без знаков будут только после применения модуля)
A Вы на палочки модуля не обратили внимания? Присмотритесь, a S - скаляр.
Последний раз редактировалось ALEX165 27 ноя 2019, 18:25, всего редактировалось 1 раз.
Причина: test
Причина: test
Площадь плоского многоугольника в трёхмерной системе координат
Ну да. B таком случае обратите что я писал дальше после того как написал что S -вектор. Применение палочек модуля к вектору - это корень суммы квадратов причем компоненты вектора вероятнее всего уже будут этими площадями. Так что это просто другая запись того же самого и все.
(перевожу: B принципе нравится, но это то же самое)
(перевожу: B принципе нравится, но это то же самое)
Последний раз редактировалось qazxsw 27 ноя 2019, 18:25, всего редактировалось 1 раз.
Причина: test
Причина: test
Вернуться в «Школьная математика»
Кто сейчас на форуме
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 4 гостей