level 7
yusiyu_1987
楼主
用鼠标转动操作,其他的东西都能动,就是坐标轴不动,好生奇怪!
看看有人懂是啥原因不。
贴代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Kitware.VTK;
namespace VTK_NewDemo3
{
public partial class UserControl1 : Kitware.VTK.RenderWindowControl
{
public UserControl1()
{
InitializeComponent();
}
private void UserControl1_Load(object sender, EventArgs e)
{
// Create a sphere
vtkSphereSource sphereSource = vtkSphereSource.New();
sphereSource.SetCenter(1.0, 0.0, 0.0);
sphereSource.Update();
// Create a mapper and actor
vtkPolyDataMapper sphereMapper = vtkPolyDataMapper.New();
sphereMapper.SetInputConnection(sphereSource.GetOutputPort());
vtkActor sphereActor = vtkActor.New();
sphereActor.SetMapper(sphereMapper);
// Create a cone
vtkConeSource coneSource = vtkConeSource.New();
// Create a mapper and actor
vtkPolyDataMapper coneMapper = vtkPolyDataMapper.New();
coneMapper.SetInputConnection(coneSource.GetOutputPort());
vtkActor coneActor = vtkActor.New();
coneActor.SetMapper(coneMapper);
////////////////////////////////////////////////////////////////////////////////////
vtkRenderWindowInteractor iren = RenderWindow.GetInteractor();
vtkAxesActor axesActor = new vtkAxesActor();
vtkPropAssembly assembly = vtkPropAssembly.New();
assembly.AddPart(coneActor);
assembly.AddPart(sphereActor);
assembly.AddPart(axesActor);
vtkOrientationMarkerWidget axesWidget = new vtkOrientationMarkerWidget();
axesWidget.SetOutlineColor(0, 0, 0);
axesWidget.SetOrientationMarker(assembly);
axesWidget.SetInteractor(iren);
axesWidget.EnabledOn();
axesWidget.SetInteractive(0);
////////////////////////////////////////////////////////////////////////////////////
vtkRenderer Renderer = RenderWindow.GetRenderers().GetFirstRenderer();
Renderer.SetBackground(1, 1, 1);
// Add the actors to the scene
Renderer.AddActor(sphereActor);
Renderer.AddActor(coneActor);
Renderer.ResetCamera();
RenderWindow.Render();
}
}
}
调用代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace VTK_NewDemo3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.panel1.Controls.Clear();
// 重新布局
UserControl1 control = new UserControl1();
control.Size = this.panel1.Size;
control.Dock = DockStyle.Fill;
control.Location = new Point(0, 0);
this.panel1.Controls.Add(control);
this.Refresh();
GC.Collect();
}
}
}
2015年02月16日 02点02分
1
看看有人懂是啥原因不。
贴代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Kitware.VTK;
namespace VTK_NewDemo3
{
public partial class UserControl1 : Kitware.VTK.RenderWindowControl
{
public UserControl1()
{
InitializeComponent();
}
private void UserControl1_Load(object sender, EventArgs e)
{
// Create a sphere
vtkSphereSource sphereSource = vtkSphereSource.New();
sphereSource.SetCenter(1.0, 0.0, 0.0);
sphereSource.Update();
// Create a mapper and actor
vtkPolyDataMapper sphereMapper = vtkPolyDataMapper.New();
sphereMapper.SetInputConnection(sphereSource.GetOutputPort());
vtkActor sphereActor = vtkActor.New();
sphereActor.SetMapper(sphereMapper);
// Create a cone
vtkConeSource coneSource = vtkConeSource.New();
// Create a mapper and actor
vtkPolyDataMapper coneMapper = vtkPolyDataMapper.New();
coneMapper.SetInputConnection(coneSource.GetOutputPort());
vtkActor coneActor = vtkActor.New();
coneActor.SetMapper(coneMapper);
////////////////////////////////////////////////////////////////////////////////////
vtkRenderWindowInteractor iren = RenderWindow.GetInteractor();
vtkAxesActor axesActor = new vtkAxesActor();
vtkPropAssembly assembly = vtkPropAssembly.New();
assembly.AddPart(coneActor);
assembly.AddPart(sphereActor);
assembly.AddPart(axesActor);
vtkOrientationMarkerWidget axesWidget = new vtkOrientationMarkerWidget();
axesWidget.SetOutlineColor(0, 0, 0);
axesWidget.SetOrientationMarker(assembly);
axesWidget.SetInteractor(iren);
axesWidget.EnabledOn();
axesWidget.SetInteractive(0);
////////////////////////////////////////////////////////////////////////////////////
vtkRenderer Renderer = RenderWindow.GetRenderers().GetFirstRenderer();
Renderer.SetBackground(1, 1, 1);
// Add the actors to the scene
Renderer.AddActor(sphereActor);
Renderer.AddActor(coneActor);
Renderer.ResetCamera();
RenderWindow.Render();
}
}
}
调用代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace VTK_NewDemo3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.panel1.Controls.Clear();
// 重新布局
UserControl1 control = new UserControl1();
control.Size = this.panel1.Size;
control.Dock = DockStyle.Fill;
control.Location = new Point(0, 0);
this.panel1.Controls.Add(control);
this.Refresh();
GC.Collect();
}
}
}