对于一个项目,我想在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立方体!