gnuplot, дискретные данные

medmikhr

Нужно нарисовать массив точек в виде 3d-структуры, соединив все точки попарно, и построить поверхность на внешних гранях получившегося многогранника, скрывая невидимые грани.Как это сделать средствами gnuplot?

toxin

Выпуклая оболочка в трехмерном пространстве - очень нетривиальная задача. Сомневаюсь что какая-либо программа общего назначения умеет ее решать.

pilaf4

Можешь попробовать построить многогранник отдельно (для этого можно найти соответствующий код а его уже вывести в gnuplot.

medmikhr

Вариант.
Но тогда придется найти и выкинуть внутренние точки, привести триангуляцию и отрисовать получившиеся треугольники. А это не самый тривиальный для реализации алгоритм.
Видимо, если не найду хорошего решения, так и сделаю.
Сомневаюсь что какая-либо программа общего назначения умеет ее решать
а ведь гнуплот - очень мощная программа

Gallery-club

splot 'x.dat' with pm3d ?
Это не то что имелось ввиду:

?

medmikhr

К сожалению, нет.
Дла работы режима pm3d гнуплот должен получить параметры замкнутой поверхности, то бишь хотя бы по 3 точки порциями.
Собственно, так и решил проблему. Разделил структуру на треугольники и предложил гнуплоту нарисовать каждый из них по отдельности, в этом случае можно удалять невидимые части, просто задав `set hidden3d`.
Насчет приведенного графика - попробуйте запихать в x.dat помимо точек купола несколько точек над ним и под ним. Скорее всего, он не поймет.

medmikhr

del
Оставить комментарий
Имя или ник:
Комментарий: