社区
C#
帖子详情
如何在C#中绘制长方体
gjfkoo
2008-10-19 12:01:03
小弟最近在写一个程序,其中有一个模块要实现的效果是输入长宽高输出一个箱子,请问该如何实现
...全文
793
15
打赏
收藏
如何在C#中绘制长方体
小弟最近在写一个程序,其中有一个模块要实现的效果是输入长宽高输出一个箱子,请问该如何实现
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shao200
2011-02-28
打赏
举报
回复
用wpf比较简单:
<Viewport3D x:Name="Cft" ClipToBounds="true" Width="400" Height="300">
<Viewport3D.Camera>
<PerspectiveCamera x:Name="FrontOR6" FarPlaneDistance="10" LookDirection="0,0,-1" UpDirection="0,1,0" NearPlaneDistance="1" Position="0,0,2.38587" FieldOfView="39.5978" />
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup x:Name="Scene">
<Model3DGroup.Transform>
<Transform3DGroup>
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
<ScaleTransform3D ScaleX="1" ScaleY="1" ScaleZ="1"/>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="0" Axis="0 1 0"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
</Transform3DGroup>
</Model3DGroup.Transform>
<AmbientLight Color="#333333" />
<DirectionalLight Color="#FFFFFF" Direction="-0.612372,-0.5,-0.612372" />
<DirectionalLight Color="#FFFFFF" Direction="0.612372,-0.5,-0.612372" />
<Model3DGroup x:Name="BoxOR9">
<Model3DGroup.Transform>
<Transform3DGroup>
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
<ScaleTransform3D ScaleX="1" ScaleY="1" ScaleZ="1"/>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="95.4748375" Axis="0.1056123828 0.2149696301 -0.9708934456"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
</Transform3DGroup>
</Model3DGroup.Transform>
<GeometryModel3D x:Name="BoxOR9GR10">
<GeometryModel3D.Material>
<MaterialGroup>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<ImageBrush ImageSource="./xaml库ER_42_TileMR1.png" TileMode="Tile" ViewportUnits="Absolute" Viewport="0 0 1 1" AlignmentX="Left" AlignmentY="Top" Opacity="1.000000" />
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</MaterialGroup>
</GeometryModel3D.Material>
<GeometryModel3D.BackMaterial>
<MaterialGroup>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<ImageBrush ImageSource="./xaml库ER_42_TileMR1.png" TileMode="Tile" ViewportUnits="Absolute" Viewport="0 0 1 1" AlignmentX="Left" AlignmentY="Top" Opacity="1.000000" />
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</MaterialGroup>
</GeometryModel3D.BackMaterial>
<GeometryModel3D.Geometry>
<MeshGeometry3D
TriangleIndices="0,1,2 2,3,0 4,5,6 6,7,4 8,9,10 10,11,8 12,13,14 14,15,12 16,17,18 18,19,16 20,21,22 22,23,20 "
Normals="0,0,-1 0,0,-1 0,0,-1 0,0,-1 0,0,1 0,0,1 0,0,1 0,0,1 0,-1,0 0,-1,0 0,-1,0 0,-1,0 1,0,0 1,0,0 1,0,0 1,0,0 0,1,0 0,1,0 0,1,0 0,1,0 -1,0,0 -1,0,0 -1,0,0 -1,0,0 "
TextureCoordinates="1,1 1,5.96046e-008 -0,5.96046e-008 -0,1 0,1 1,1 1,5.96046e-008 0,5.96046e-008 0,1 1,1 1,0 0,0 1,1 1,5.96046e-008 -0,5.96046e-008 -0,1 1,0 0,0 0,1 1,1 0,5.96046e-008 0,1 1,1 1,5.96046e-008 "
Positions="-0.5,-0.785,-0.5 -0.5,0.785,-0.5 0.5,0.785,-0.5 0.5,-0.785,-0.5 -0.5,-0.785,0.5 0.5,-0.785,0.5 0.5,0.785,0.5 -0.5,0.785,0.5 -0.5,-0.785,-0.5 0.5,-0.785,-0.5 0.5,-0.785,0.5 -0.5,-0.785,0.5 0.5,-0.785,-0.5 0.5,0.785,-0.5 0.5,0.785,0.5 0.5,-0.785,0.5 0.5,0.785,-0.5 -0.5,0.785,-0.5 -0.5,0.785,0.5 0.5,0.785,0.5 -0.5,0.785,-0.5 -0.5,-0.785,-0.5 -0.5,-0.785,0.5 -0.5,0.785,0.5 "
/>
</GeometryModel3D.Geometry>
</GeometryModel3D>
</Model3DGroup>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
</Canvas>
gjfkoo
2008-10-21
打赏
举报
回复
没有调用DX的情况下已经绘制出来了,谢谢以上各位
gjfkoo
2008-10-20
打赏
举报
回复
绘制出来的是长方形啊,我是指长方体,就是三维的,带高的长方形
CraxyMouse
2008-10-20
打赏
举报
回复
[Quote=引用 10 楼 gjfkoo 的回复:]
绘制出来的是长方形啊,我是指长方体,就是三维的,带高的长方形
[/Quote]
多思考一下就明白了!!
gjfkoo
2008-10-20
打赏
举报
回复
不用在浏览器实现的,好像调用DX就可以了吧?
gjfkoo
2008-10-20
打赏
举报
回复
调用DX可以吗?需要怎样实现呢
CraxyMouse
2008-10-19
打赏
举报
回复
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawRectangle(Pens.Blue, new Rectangle(20, 20, 100, 100));
}
gjfkoo
2008-10-19
打赏
举报
回复
能具体点说一下思路或者提供部分代码吗》
IMAGSE
2008-10-19
打赏
举报
回复
用vml+xml吧~
liuhelong
2008-10-19
打赏
举报
回复
[Quote=引用 3 楼 dunao 的回复:]
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawRectangle(Pens.Blue, new Rectangle(20, 20, 100, 100));
}
[/Quote]
jf
Deathsign
2008-10-19
打赏
举报
回复
如果你是WEB的画
你先在另外一个页里面(A)把该页输出成JPG
然后用GDI+在A里面画好 然后用一个Img接受就行了···
长宽可以传个URL参数给A····
Deathsign
2008-10-19
打赏
举报
回复
[Quote=引用 3 楼 dunao 的回复:]
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawRectangle(Pens.Blue, new Rectangle(20, 20, 100, 100));
}
[/Quote]
正解
gjfkoo
2008-10-19
打赏
举报
回复
请各位高手提供一点思路,小弟水平尚浅
CraxyMouse
2008-10-19
打赏
举报
回复
那就是用WPF!我还在学习中
gjfkoo
2008-10-19
打赏
举报
回复
如果用vml+xml具体思路是怎样
c#
opnegl
绘制
立方体、金字塔、圆柱体、球体 旋转 网格
c#
opnegl
绘制
立方体(cube)、金字塔(pyramid)、圆柱体(cylinder)、球体(spere) 旋转(rotate) 网格(grid) 代码逻辑清晰,技巧性强
helix-toolkit:Helix工具包是.NET的3D组件的集合
Helix工具包 Helix Toolkit是.NET Framework的3D组件的集合。 在内部WPF 3D模型(Media3D名称空间)的顶部添加了各种功能/模型。 在内部.NET Core WPF 3D模型(Media3D命名空间)的顶部添加了各种功能/模型。 基于 (DirectX 11)的自定义3D引擎和XAML / MVVM兼容场景图,可实现高性能。 基于通用Windows App的 (DirectX 11)的自定义3D引擎和XAML / MVVM兼容的场景图。 用于Netstandard和.NET Core的基于 (DirectX 11)的自定义3D引擎和场景图。 基于WPF的包装部件HelixToolkit.SharpDX.Core对.NET的核心WPF。 对HelixToolkit.SharpDX组件的 3D模型导入器/扩展器支持。 请下载完整的源代码以运行示例。 或下载 描述 值 网页 维基 文献资料 聊天室 源库 最新版本 问题追踪器 NuGet软件包 每晚建造 堆栈溢出 推特 项目建设 Visual Studio 2019.
用
C#
实现工控上位机
结合Github高星开源项目SharpSCADA讲解工控上位机开发,重视基础,突出实战,为广大工控从业者、编程爱好者提供一种新颖的解决方案,可以快速搭建强大易用可扩展的工控上位机,并在此开源项目基础上开发工业大数据和MES系统,定制个性化的工业自动化行业解决方案。在学习过程
中
,可加深对
C#
语言和.NET平台的理解,进一步了解工业以太网协议,熟练对WPF技术的应用,透析组态软件的架构。
使用
C#
GDI+
绘制
多重黄金矩形
介绍如何使用
C#
GDI+
绘制
多重黄金矩形
C#
OpenGL(SharpGL)
绘制
可旋转
长方体
全局字段: // X轴坐标 private float _x = 0; // Y轴坐标 private float _y = 0; //Z轴坐标 private float _z = 0; OpenGLOpenGLDraw事件: //OpenGL绘图事件 pr
C#
110,571
社区成员
642,565
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章