在Winforms中显示彩色3D框的最简单方法



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

我一直在做很多谷歌搜索,但是我发现的所有解决方案都比我想象的要复杂。每个例子都会让您自己绘制每个点和每个佛法。

我最接近一个简单的解决方案的是带有场景控制的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(cube);

,但我无法找出如何添加颜色和用户控件。我几乎没有这个库的文档。

不应该有一个非常简单的库,您可以在其中编码:

Scene.AddBox(length, width, height, x, y, z, Rx, Ry, Rx, color)

还是我错过了什么?我希望有人可以将我指向正确的方向。

您应该使用wpf/c#并获取AB4D库或Helix Toolkit。

ab4d花费金钱,但这非常容易做到这一点。我使用了AB4D,但不使用螺旋工具包。

在以下网址查看PowerToys:https://www.ab4d.com/powertoys.aspx

忘记为此使用Windows表单,它是用于接口而不是3D渲染的,并且仍然做得不好。

用winforms运行opengl以渲染一个立方体,这对我来说似乎很难。

我建议您使用OpenGL的Web版本。WebGl。

您需要一个浏览器。问题是Winforms内置了一个不良的Web浏览器。因此,您需要一个更现代的浏览器。

您有一些选择:边缘(Edgehtml(铬(铬(Firefox(壁虎(

我在Winforms中都有与所有人的经验。他们都有一些优势和一些缺点。

我们将与Edge一起使用,因为此浏览器已内置在Windows 10中,并且您可以使用Windows Community Toolkit将其直接嵌入Winforms应用中。

请在您的项目上安装Windows社区工具包中的Winforms Nuget软件包。

现在刷新您的工具箱,然后将WebView控件拖动到您想要的位置。

(设计尺寸由您决定...(

下一步是编写一些代码。

您必须写一些JavaScript和HTML才能在屏幕上获取立方体。

这是我在线找到的一个示例:https://codepen.io/dbrandt/pen/mebqzz

您正确地执行了这样的操作后:

webView.NavigateToString(yourHtmlAsString);

,您为Winforms上的OpenGL渲染了一个3D立方体!

最新更新