Каков самый простой способ реализовать (рисовать) 3D-график/разброс, эквивалентный plot3 из Matlab?

Сюжет

Ссылка

У меня есть некоторые точки, скажем, 3d (они n-мерные, но я использую только 3 измерения для сюжета). Не думаю, что у меня будет больше 2000 баллов. Как я могу нарисовать что-то подобное, используя С#. Я не хочу вызывать функцию Matlab или использовать рисунок оттуда. До сих пор я не использовал WPF, но, если его легко реализовать и понять, меня это устраивает.


person andrei catalin    schedule 29.06.2013    source источник
comment
Добро пожаловать в Переполнение стека Почему вы не хотите вызывать функцию Matlab? Это просто изображение, которое вы используете, из Matlab? Вы отметили вопрос winforms, но встроенных элементов управления 3D-графиком нет — вам придется сделать это с помощью Graphics. Это звучит очень как этот вопрос, это в значительной степени вопрос о покупках?   -  person Jeremy Thompson    schedule 29.06.2013
comment
На самом деле мне не разрешено просто загружать изображение, цель проекта - создать пользовательский интерфейс в WinForms, и я должен построить график, я уже получил свои данные из Matlab.   -  person andrei catalin    schedule 29.06.2013
comment
Я делаю то же самое но посмотрите здесь, как я генерирую график с помощью Mathematica, затем загрузите изображение в графический интерфейс .Net. У него даже есть инструменты рисования на C# для создания эпилога. Возможности MatLab и MMA для построения графиков намного более зрелые, чем то, что вы получаете со сторонними компонентами .Net Graphing. Вот почему я думаю, что вам лучше использовать MatLab в качестве графического движка из вашего приложения C# Winform/VSTO, такого как мое.   -  person Jeremy Thompson    schedule 29.06.2013
comment
@andreicatalin размещенное вами изображение бесполезно, если мы не можем выполнить какое-либо действие по вращению, чтобы просмотреть трехмерный график под разными углами. Это сложнее всего сделать в Winforms (без какой-либо 3D-библиотеки), если просто нарисовать статичный и неинтерактивный график, это не так уж сложно сделать с помощью небольшого GDI+.   -  person King King    schedule 30.06.2013
comment
Как основатель Gigasoft, наш charting/gigasoft.com ориентирован исключительно на собственность. Другими словами, никакого абстрактного создания объектов и вызова функций с объектами для установки данных. Просто MyChart.PeData.Y(0,0) = 1.0, который является синтаксисом массива свойств строки/столбца. Есть также функции для осведомленности о данных, но необязательные. У нас есть 18-мегабайтная демонстрационная загрузка без проблем, которая показывает 3D-разброс и многое другое, с показанным кодом, необходимым для создания. Оценки включают проекты по воспроизведению демо. Чтение кода нашего примера должно прояснить простоту использования.   -  person Robert    schedule 21.06.2014
comment
возможно, вы можете попробовать это github.com/foman/Plotter3D   -  person Liang    schedule 30.10.2018


Ответы (2)


ILNumerics довольно легко освоить. Он сочетает в себе математический движок с возможностями визуализации (предоставляя элементы управления Windows Forms). Я разместил пример здесь:

Как создать 3D-график рассеяния?

person BartoszKP    schedule 28.09.2013

Я использовал ILNumerics, который предоставляет удобные метки и метки для каждого из точечных графиков и контурных графиков, но у меня были проблемы с выбором точек данных на точечном графике с помощью мыши, пока я не нашел эту статью о построении графиков 3D-данных в WPF. Он работает хорошо, но ему не хватает меток осей и делений.

Высокопроизводительная трехмерная диаграмма WPF

person skinnedKnuckles    schedule 28.11.2013