C# 在winforms中显示彩色3D框的最简单方法

C# 在winforms中显示彩色3D框的最简单方法,c#,winforms,opengl,3d,C#,Winforms,Opengl,3d,对于一个项目,我想在winform应用程序中显示一个带有方框的3D场景。对于每个框,我想设置长度/宽度/高度x/y/z坐标和颜色。我希望这尽可能简单,尽管用户应该能够用鼠标旋转场景 我在谷歌上搜索了很多次,但我找到的所有解决方案都比我认为的要复杂得多。每一个例子都让你自己画每一个点和每一个顶点 我找到的最简单的解决方案是带有scenecontrol的SharpGL库。在这里,您可以使用以下简单代码: var cube=new cube(); cube.Transformation.ScaleX=

对于一个项目,我想在winform应用程序中显示一个带有方框的3D场景。对于每个框,我想设置长度/宽度/高度x/y/z坐标和颜色。我希望这尽可能简单,尽管用户应该能够用鼠标旋转场景

我在谷歌上搜索了很多次,但我找到的所有解决方案都比我认为的要复杂得多。每一个例子都让你自己画每一个点和每一个顶点

我找到的最简单的解决方案是带有scenecontrol的SharpGL库。在这里,您可以使用以下简单代码:

var cube=new cube();
cube.Transformation.ScaleX=0.3f;
cube.Transformation.ScaleY=0.2f;
cube.Transformation.ScaleZ=0.4f;
cube.Transformation.TranslateX=1f;
cube.Transformation.TranslateX=2f;
cube.Transformation.TranslateX=3f;
sceneControl1.Scene.SceneContainer.AddChild(立方体);
但我无法找到如何添加颜色和用户控件。我几乎找不到这个图书馆的任何文档

难道不应该有一个非常简单的库,您可以在其中编写如下代码:

Scene.AddBox(长度、宽度、高度、x、y、z、Rx、Ry、Rx、颜色)

还是我遗漏了什么?我希望有人能给我指出正确的方向。

忘了使用windows窗体吧,它是用于界面而不是3D渲染的,但它仍然做得很差。

用winforms运行OpenGL来渲染多维数据集对我来说似乎很难,但这是可能的

我建议您使用opengl的web版本。WebGL

你需要一个浏览器。问题是winforms内置的web浏览器不好。所以你需要一个更现代的浏览器

你有几个选择: 边缘(EdgeHTML) 铬(铬) 火狐(壁虎)

我曾在winforms中与他们所有人都有过接触。它们都有一些优点和缺点

我们将使用Edge,因为此浏览器内置于Windows 10中,您可以使用Windows社区工具包将其直接嵌入到WinForms应用程序中

请在您的项目上安装Windows Community Toolkit for WinForms NuGet软件包

现在刷新工具箱,并将WebView控件拖动到需要多维数据集的任何位置

(设计尺寸由您决定…)

下一步是编写一些代码

您必须编写一些JavaScript和HTML才能在屏幕上显示多维数据集

下面是我在网上找到的一个例子:

正确使用HTML后,请执行以下操作:

webView.NavigateToString(yourHtmlAsString);
您还可以在Winforms上使用opengl进行3d立方体渲染

您应该使用WPF/C,并获得AB4D库或Helix工具包

AB4D需要花钱,但要做到这一点非常容易。我使用过AB4D,但没有使用Helix工具包


查看Powertoys网站:

您能推荐其他方法从c#实现这一点吗(最好将其嵌入winform,但使用其他类型的控件?)如果接口不太复杂,我会使用unity。如果是WPF,则使用一些库。现在使用Winforms的唯一原因是如果你有遗留代码或者你的公司正在使用它。哦,天哪,因为试图回答一个不符合“规则”的问题而受到惩罚。我认为Helix工具包将是我在这个项目中的选择。我必须咬紧牙关,切换到WPF(无论如何这不是一个坏主意)。相同的用户控件可以在WPF和Winforms应用程序中互换使用。在Winforms中,需要一个
ElementHost