基于AnyCAD进行开发,集成三维模型展示功能、支持拖拽、平移、旋转等操作。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AnyCAD.Platform;
namespace AnyCAD.Basic
{
public partial class FormMain : Form
{
// The global application object
Platform.Application theApplication = new Platform.Application();
// BREP tool to create geometries.
BrepTools shapeMaker = new BrepTools();
// Default 3d View
Platform.View3d theView;
public FormMain()
{
InitializeComponent();
this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.onmousewheel);
}
private void FormMain_Load(object sender EventArgs e)
{
// Initialize the Application.
theApplication.Initialize();
Size size = panel3d.Size;
// Create the 3d View
theView = theApplication.CreateView(panel3d.Handle.ToInt32() size.Width size.Height);
theView.RequestDraw();
this.timerDraw.Enabled = true;
}
private void FormMain_SizeChanged(object sender EventArgs e)
{
Size size = panel3d.Size;
if(theView != null)
theView.OnSize(size.Width size.Height);
}
private void panel3d_Paint(object sender PaintEventArgs e)
{
if (theView == null)
return;
theView.Redraw();
}
private void timerDraw_Tick(object sender EventArgs e)
{
theView.RequestDraw();
theView.Redraw();
}
private SceneNode ShowTopoShape(TopoShape topoShape int id)
{
// Add the TopoShape to Scene.
TopoShapeConvert convertor = new TopoShapeConvert();
SceneNode faceNode = convertor.ToFaceNode(topoShape 0.5f);
faceNode.SetId(id);
theView.GetSceneManager().AddNode(faceNode);
return faceNode;
}
private void ClearScene()
{
theView.GetSceneManager().ClearNodes();
}
private void sphereToolStripMenuItem_Click(object sender EventArgs e)
{
TopoShape sphere = shapeMaker.MakeSphere(new Vector3(0 0 0) 40);
ShowTopoShape(sphere 100);
}
private void boxToolStripMenuItem_Click(object sender EventArgs e)
{
TopoShape box = shapeMaker.MakeBox(new Vector3(40 -20 0) new Vector3(0 0 1) new Vector3(30 40 60));
SceneNode sceneNode = ShowTopoShape(box 101);
Facestyle style = new Facestyle();
style.SetColor(new ColorValue(0.5f 0.3f 0 1));
sceneNode.SetFacestyle(style);
}
private void cylinderToolStripMenuItem_Click(object sender EventArgs e)
{
TopoShape cylinder = shapeMaker.MakeCylinder(new V
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)