123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using Kitware.VTK;
- using chutian_parking_terminal.front_terminal_manager;
- using Sunny.UI;
- using tool;
- namespace chutian_parking_terminal
- {
- public partial class FormVtk : UIForm
- {
- public class Car_info
- {
- public bool correct = false;
- public double cx;
- public double cy;
- public double theta;
- public double wheel_base;
- public double width;
- public double front_theta;
- public Car_info() { }
- }
- class Wheel_info
- {
- double m_radius = 0.35;
- double m_width = 0.2;
- public double[] p1 = new double[3];
- public double[] p2 = new double[3];
- public Wheel_info(double radius, double width)
- {
- m_radius = radius;
- m_width = width;
- p1[0] = -width / 2.0;
- p1[1] = 0;
- p1[2] = radius;
- p2[0] = width / 2.0;
- p2[1] = 0;
- p2[2] = radius;
- }
- public void rotate(double theta)
- {
- double x = Math.Cos(theta) * p1[0] - Math.Sin(theta) * p1[1];
- double y = Math.Sin(theta) * p1[0] + Math.Cos(theta) * p1[1];
- p1[0] = x;
- p1[1] = y;
- x = Math.Cos(theta) * p2[0] - Math.Sin(theta) * p2[1];
- y = Math.Sin(theta) * p2[0] + Math.Cos(theta) * p2[1];
- p2[0] = x;
- p2[1] = y;
- }
- public void translate(PointF pt)
- {
- p1[0] += pt.X;
- p1[1] += pt.Y;
- p2[0] += pt.X;
- p2[1] += pt.Y;
- }
- }
- class ViewData_Source
- {
- public vtkPolyData m_cloud_polydata = vtkPolyData.New();
- public vtkVertexGlyphFilter m_cloud_glyphFilter = vtkVertexGlyphFilter.New();
- public vtkPolyDataMapper m_cloud_mapper = vtkPolyDataMapper.New();
- public vtkActor m_cloud_act = vtkActor.New();
- vtkLineSource m_ls_lt = vtkLineSource.New();
- vtkTubeFilter m_tf_lt = vtkTubeFilter.New();
- vtkPolyDataMapper m_dm_lt = vtkPolyDataMapper.New();
- public vtkActor m_left_front_wheel_act = vtkActor.New();
- vtkLineSource m_ls_rt = vtkLineSource.New();
- vtkTubeFilter m_tf_rt = vtkTubeFilter.New();
- vtkPolyDataMapper m_dm_rt = vtkPolyDataMapper.New();
- public vtkActor m_right_front_wheel_act = vtkActor.New();
- vtkLineSource m_ls_lb = vtkLineSource.New();
- vtkTubeFilter m_tf_lb = vtkTubeFilter.New();
- vtkPolyDataMapper m_dm_lb = vtkPolyDataMapper.New();
- public vtkActor m_left_rear_wheel_act = vtkActor.New();
- vtkLineSource m_ls_rb = vtkLineSource.New();
- vtkTubeFilter m_tf_rb = vtkTubeFilter.New();
- vtkPolyDataMapper m_dm_rb = vtkPolyDataMapper.New();
- public vtkActor m_right_rear_wheel_act = vtkActor.New();
- vtkProperty m_whell_pp = vtkProperty.New();
- PointF rotate_point(PointF pt, double theta)
- {
- double x = Math.Cos(theta) * pt.X - Math.Sin(theta) * pt.Y;
- double y = Math.Sin(theta) * pt.X + Math.Cos(theta) * pt.Y;
- return new PointF((float)x, (float)y);
- }
- public void update_car_info(Car_info car_info)
- {
- if (car_info.correct == false)
- {
- //隐藏车轮
- m_left_front_wheel_act.VisibilityOff();
- m_right_front_wheel_act.VisibilityOff();
- m_left_rear_wheel_act.VisibilityOff();
- m_right_rear_wheel_act.VisibilityOff();
- return;
- }
- double wheel_width = 0.2;
- double radius = 0.35;
- Wheel_info lt = new Wheel_info(radius, wheel_width);
- Wheel_info rt = new Wheel_info(radius, wheel_width);
- Wheel_info lb = new Wheel_info(radius, wheel_width);
- Wheel_info rb = new Wheel_info(radius, wheel_width);
- lt.rotate(car_info.theta + car_info.front_theta);
- rt.rotate(car_info.theta + car_info.front_theta);
- lb.rotate(car_info.theta);
- rb.rotate(car_info.theta);
- float view_width =(float)(car_info.width - wheel_width);
- PointF lt_pt = rotate_point(new PointF((float)(-view_width / 2.0),
- (float)(car_info.wheel_base / 2.0)), car_info.theta);
- PointF rt_pt = rotate_point(new PointF((float)(view_width / 2.0),
- (float)(car_info.wheel_base / 2.0)), car_info.theta);
- PointF lb_pt = rotate_point(new PointF((float)(-view_width / 2.0),
- (float)(-car_info.wheel_base / 2.0)), car_info.theta);
- PointF rb_pt = rotate_point(new PointF((float)(view_width / 2.0),
- (float)(-car_info.wheel_base / 2.0)), car_info.theta);
- lt.translate(lt_pt);
- rt.translate(rt_pt);
- lb.translate(lb_pt);
- rb.translate(rb_pt);
- lt.translate(new PointF((float)car_info.cx, (float)car_info.cy));
- rt.translate(new PointF((float)car_info.cx, (float)car_info.cy));
- lb.translate(new PointF((float)car_info.cx, (float)car_info.cy));
- rb.translate(new PointF((float)car_info.cx, (float)car_info.cy));
- int line_count = 30;
- //左前轮
- m_ls_lt.SetPoint1(lt.p1[0], lt.p1[1], lt.p1[2]);
- m_ls_lt.SetPoint2(lt.p2[0], lt.p2[1], lt.p2[2]);
- m_tf_lt.SetInputConnection(m_ls_lt.GetOutputPort());
- m_tf_lt.SetRadius(0.3);
- m_tf_lt.SetNumberOfSides(line_count);
- m_tf_lt.CappingOn();
- m_dm_lt.SetInputConnection(m_tf_lt.GetOutputPort());
- m_left_front_wheel_act.SetMapper(m_dm_lt);
- //右前轮
- m_ls_rt.SetPoint1(rt.p1[0], rt.p1[1], rt.p1[2]);
- m_ls_rt.SetPoint2(rt.p2[0], rt.p2[1], rt.p2[2]);
- m_tf_rt.SetInputConnection(m_ls_rt.GetOutputPort());
- m_tf_rt.SetRadius(0.3);
- m_tf_rt.SetNumberOfSides(line_count);
- m_tf_rt.CappingOn();
- m_dm_rt.SetInputConnection(m_tf_rt.GetOutputPort());
- m_right_front_wheel_act.SetMapper(m_dm_rt);
- //左后轮
- m_ls_lb.SetPoint1(lb.p1[0], lb.p1[1], lb.p1[2]);
- m_ls_lb.SetPoint2(lb.p2[0], lb.p2[1], lb.p2[2]);
- m_tf_lb.SetInputConnection(m_ls_lb.GetOutputPort());
- m_tf_lb.SetRadius(0.3);
- m_tf_lb.SetNumberOfSides(line_count);
- m_tf_lb.CappingOn();
- m_dm_lb.SetInputConnection(m_tf_lb.GetOutputPort());
- m_left_rear_wheel_act.SetMapper(m_dm_lb);
- //右后轮
- m_ls_rb.SetPoint1(rb.p1[0], rb.p1[1], rb.p1[2]);
- m_ls_rb.SetPoint2(rb.p2[0], rb.p2[1], rb.p2[2]);
- m_tf_rb.SetInputConnection(m_ls_rb.GetOutputPort());
- m_tf_rb.SetRadius(0.3);
- m_tf_rb.SetNumberOfSides(line_count);
- m_tf_rb.CappingOn();
- m_dm_rb.SetInputConnection(m_tf_rb.GetOutputPort());
- m_right_rear_wheel_act.SetMapper(m_dm_rb);
- m_whell_pp.SetOpacity(0.5);
- m_whell_pp.SetColor(0, 0, 0);
- m_whell_pp.SetLineWidth(2);
- m_whell_pp.SetLighting(true);
- m_whell_pp.SetEdgeColor(0, 0, 0);
- m_whell_pp.SetEdgeVisibility(1);
- m_left_front_wheel_act.SetProperty(m_whell_pp);
- m_right_front_wheel_act.SetProperty(m_whell_pp);
- m_left_rear_wheel_act.SetProperty(m_whell_pp);
- m_right_rear_wheel_act.SetProperty(m_whell_pp);
- //显示车轮
- m_left_front_wheel_act.VisibilityOn();
- m_right_front_wheel_act.VisibilityOn();
- m_left_rear_wheel_act.VisibilityOn();
- m_right_rear_wheel_act.VisibilityOn();
- }
- public void update_cloud(vtkPoints points)
- {
- m_cloud_polydata.SetPoints(points);
- //Color
- m_cloud_glyphFilter.RemoveAllInputs();
- m_cloud_glyphFilter.SetInput(m_cloud_polydata);
- m_cloud_glyphFilter.Update();
- // Visualize
- m_cloud_mapper.RemoveAllInputs();
- m_cloud_mapper.SetInputConnection(m_cloud_glyphFilter.GetOutputPort());
- m_cloud_act.SetMapper(m_cloud_mapper);
- m_cloud_act.GetProperty().SetPointSize(2);
- }
- public void SetCloudColor(Color color)
- {
- m_cloud_act.GetProperty().SetColor(color.R, color.G, color.B);
- }
- }
- object m_lock = new object();
- vtkPoints m_points = new vtkPoints();
- Car_info m_car_info = new Car_info();
- vtkActor m_bound_act = vtkActor.New();
- vtkTextActor m_text_act = vtkTextActor.New();
- ViewData_Source m_view_data_source1 = new ViewData_Source();
- ViewData_Source m_view_data_source2 = new ViewData_Source();
- System.Media.SoundPlayer m_sound_player = new System.Media.SoundPlayer();
- System.Windows.Forms.Timer m_timerGetTime = new System.Windows.Forms.Timer();
- //自适应窗口大小
- AutoResizeForm m_auto_resize_form = new AutoResizeForm();
- bool m_is_correct = false;
- bool isClosed = false;
- Thread m_viewer_ledDisplay_thread;
- bool ArrowsVisible = false;
- Arrows arrows = Arrows.eArrows_unknow;
- public enum Arrows
- {
- /// <summary>
- /// 默认
- /// </summary>
- eArrows_unknow =-1,
- /// <summary>
- /// 箭头向左
- /// </summary>
- eArrows_left =0,
- /// <summary>
- /// 箭头向右
- /// </summary>
- eArrows_right = 1,
- /// <summary>
- /// 箭头向上
- /// </summary>
- eArrows_top = 2,
- /// <summary>
- /// 箭头向下
- /// </summary>
- eArrows_down = 3,
- /// <summary>
- /// 箭头向左上
- /// </summary>
- eArrows_upperleft = 4,
- /// <summary>
- /// 箭头向右上
- /// </summary>
- eArrows_upperright = 5,
- /// <summary>
- /// 箭头向左下
- /// </summary>
- eArrows_lowerleft = 6,
- /// <summary>
- /// 箭头向右下
- /// </summary>
- eArrows_lowerright = 7,
- };
- public void isCorrect(bool t_is_correct)
- {
- m_is_correct = t_is_correct;
- }
- /// <summary>
- /// 设置箭头
- /// </summary>
- /// <param name="t_arrows"></param>
- public void SetArrows(Arrows t_arrows)
- {
- arrows = t_arrows;
- }
- public void isArrowsVisible(bool visible)
- {
- ArrowsVisible = visible;
- }
- public void set_tip_car_label(string str)
- {
- this.Invoke(new Action(() =>
- {
- this.tip_car_label.Text = str;
- }));
- }
- public void set_car_data_label(string str)
- {
- this.Invoke(new Action(() =>
- {
- this.Tip_Label.Text = str;
- }));
- }
- public void set_tip_label(string str)
- {
- this.Invoke(new Action(() =>
- {
- this.Statu_Label.Text = str;
- }));
- }
- public void SetCloud(vtkPoints points)
- {
- lock (m_lock)
- {
- m_points.DeepCopy(points);
- }
- }
- public void SetCloudColor(Color color)
- {
- lock (m_lock)
- {
- m_view_data_source1.SetCloudColor(color);
- m_view_data_source2.SetCloudColor(color);
- }
- }
- public void SetCarInfo(Car_info car_info)
- {
- lock (m_lock)
- {
- m_car_info = car_info;
- }
- }
- public Color GetColor(float percentage)
- {
- var red = (percentage > 50 ? 1 - 2 * (percentage - 50) / 100.0 : 1.0) * 255;
- var green = (percentage > 50 ? 1.0 : 2 * percentage / 100.0) * 255;
- var blue = 0.0;
- Color result = Color.FromArgb((int)red, (int)green, (int)blue);
- return result;
- }
- public FormVtk()
- {
- InitializeComponent();
- m_viewer_ledDisplay_thread = new Thread(viewer_ledDisplay);
- }
- public void viewer_ledDisplay()
- {
- while (!isClosed)
- {
- try
- {
- this.Invoke(new Action(() =>
- {
-
- if (m_is_correct)
- {
- Statu_Label.Text = "车已停好!";
- Statu_Label.ForeColor = GetColor(100);
- show_correct_tip_image();
- SetCloudColor(GetColor(100));
- }
- else
- {
- Statu_Label.ForeColor = GetColor(0);
- show_error_tip_image();
- SetCloudColor(GetColor(0));
- }
- if (ArrowsVisible)
- {
- switch (arrows)
- {
- case Arrows.eArrows_top:
- {
- this.top_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangshang.png");
- top_pictureBox.Visible = true;
- down_pictureBox.Visible = false;
- left_pictureBox.Visible = false;
- right_pictureBox.Visible = false;
- upperleft_pictureBox.Visible = false;
- upperright_pictureBox.Visible = false;
- lowerleft_pictureBox.Visible = false;
- lowerright_pictureBox.Visible = false;
- }
- break;
- case Arrows.eArrows_down:
- {
- this.down_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangxia.png");
- top_pictureBox.Visible = false;
- down_pictureBox.Visible = true;
- left_pictureBox.Visible = false;
- right_pictureBox.Visible = false;
- upperleft_pictureBox.Visible = false;
- upperright_pictureBox.Visible = false;
- lowerleft_pictureBox.Visible = false;
- lowerright_pictureBox.Visible = false;
- }
- break;
- case Arrows.eArrows_left:
- {
- this.left_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangzuo.png");
- top_pictureBox.Visible = false;
- down_pictureBox.Visible = false;
- left_pictureBox.Visible = true;
- right_pictureBox.Visible = false;
- upperleft_pictureBox.Visible = false;
- upperright_pictureBox.Visible = false;
- lowerleft_pictureBox.Visible = false;
- lowerright_pictureBox.Visible = false;
- }
- break;
- case Arrows.eArrows_right:
- {
- this.right_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangyou.png");
- top_pictureBox.Visible = false;
- down_pictureBox.Visible = false;
- left_pictureBox.Visible = false;
- right_pictureBox.Visible = true;
- upperleft_pictureBox.Visible = false;
- upperright_pictureBox.Visible = false;
- lowerleft_pictureBox.Visible = false;
- lowerright_pictureBox.Visible = false;
- }
- break;
- case Arrows.eArrows_upperleft:
- {
- this.upperleft_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_zuoshang.png");
- top_pictureBox.Visible = false;
- down_pictureBox.Visible = false;
- left_pictureBox.Visible = false;
- right_pictureBox.Visible = false;
- upperleft_pictureBox.Visible = true;
- upperright_pictureBox.Visible = false;
- lowerleft_pictureBox.Visible = false;
- lowerright_pictureBox.Visible = false;
- }
- break;
- case Arrows.eArrows_upperright:
- {
- this.upperright_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_youshang.png");
- top_pictureBox.Visible = false;
- down_pictureBox.Visible = false;
- left_pictureBox.Visible = false;
- right_pictureBox.Visible = false;
- upperleft_pictureBox.Visible = false;
- upperright_pictureBox.Visible = true;
- lowerleft_pictureBox.Visible = false;
- lowerright_pictureBox.Visible = false;
- }
- break;
- case Arrows.eArrows_lowerleft:
- {
- this.lowerleft_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_zuoxia.png");
- top_pictureBox.Visible = false;
- down_pictureBox.Visible = false;
- left_pictureBox.Visible = false;
- right_pictureBox.Visible = false;
- upperleft_pictureBox.Visible = false;
- upperright_pictureBox.Visible = false;
- lowerleft_pictureBox.Visible = true;
- lowerright_pictureBox.Visible = false;
- }
- break;
- case Arrows.eArrows_lowerright:
- {
- this.lowerright_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_youxia.png");
- top_pictureBox.Visible = false;
- down_pictureBox.Visible = false;
- left_pictureBox.Visible = false;
- right_pictureBox.Visible = false;
- upperleft_pictureBox.Visible = false;
- upperright_pictureBox.Visible = false;
- lowerleft_pictureBox.Visible = false;
- lowerright_pictureBox.Visible = true;
- }
- break;
- }
- }
- else
- {
- top_pictureBox.Visible = false;
- down_pictureBox.Visible = false;
- left_pictureBox.Visible = false;
- right_pictureBox.Visible = false;
- upperleft_pictureBox.Visible = false;
- upperright_pictureBox.Visible = false;
- lowerleft_pictureBox.Visible = false;
- lowerright_pictureBox.Visible = false;
- }
- }));
- }
- catch { }
- Thread.Sleep(100);
- }
- }
- void viewer_car(Car_info car_info)
- {
- try
- {
- vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();
- renderer.RemoveActor(m_view_data_source1.m_left_front_wheel_act);
- renderer.RemoveActor(m_view_data_source1.m_right_front_wheel_act);
- renderer.RemoveActor(m_view_data_source1.m_left_rear_wheel_act);
- renderer.RemoveActor(m_view_data_source1.m_right_rear_wheel_act);
- m_view_data_source1.update_car_info(car_info);
- m_view_data_source2.update_car_info(car_info);
- renderer.AddActor(m_view_data_source1.m_left_front_wheel_act);
- renderer.AddActor(m_view_data_source1.m_right_front_wheel_act);
- renderer.AddActor(m_view_data_source1.m_left_rear_wheel_act);
- renderer.AddActor(m_view_data_source1.m_right_rear_wheel_act);
- renderWindowControl1.RenderWindow.Render();
- }
- catch (Exception e)
- {
- }
- }
- public void SetBound(double minx, double maxx, double miny,
- double maxy, double minz, double maxz)
- {
- vtkCubeSource cube = vtkCubeSource.New();
- cube.SetBounds(minx, maxx, miny, maxy, minz, maxz);
- vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
- mapper.SetInputConnection(cube.GetOutputPort());
- m_bound_act.SetMapper(mapper);
- vtkProperty pp = vtkProperty.New();
- pp.SetEdgeColor(1, 0, 0);
- pp.SetEdgeVisibility(1);
- pp.SetColor(1, 1, 1);
- pp.SetLineWidth(2);
- pp.SetOpacity(0.2);
- m_bound_act.SetProperty(pp);
- renderWindowControl1.Refresh();
- }
- private void viewer_cloud(vtkPoints points)
- {
- if (points.GetReferenceCount() == 0)
- return;
- try
- {
- vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();
- renderer.RemoveActor(m_view_data_source1.m_cloud_act);
- m_view_data_source1.update_cloud(points);
- m_view_data_source2.update_cloud(points);
- renderer.AddActor(m_view_data_source1.m_cloud_act);
- renderWindowControl1.RenderWindow.Render();
- }
- catch (Exception e)
- {
- }
- }
-
- private void renderWindowControl1_Load(object sender, EventArgs e)
- {
- vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();
- vtkInteractorStyleTrackballCamera style = vtkInteractorStyleTrackballCamera.New(); //移动摄像头
- vtkAxesActor axesActor = vtkAxesActor.New(); // 创建“坐标”角色
- axesActor.SetScale(1.0, 1.0, 1.0);
- axesActor.AxisLabelsOff();
- renderer.AddActor(axesActor); // 渲染坐标角色
- renderer.AddActor(m_view_data_source1.m_cloud_act);
- renderer.AddActor(m_view_data_source1.m_left_front_wheel_act);
- renderer.AddActor(m_view_data_source1.m_right_front_wheel_act);
- renderer.AddActor(m_view_data_source1.m_left_rear_wheel_act);
- renderer.AddActor(m_view_data_source1.m_right_rear_wheel_act);
- renderer.AddActor(m_text_act);
- renderer.AddActor(m_bound_act);
- renderer.SetBackground(1, 1, 1);
- renderer.ResetCamera();
- renderer.GetActiveCamera().Zoom(1.3);
- vtkRenderWindowInteractor renderWindowInteractor = renderWindowControl1.RenderWindow.MakeRenderWindowInteractor();
- renderWindowInteractor.SetInteractorStyle(style); //交互模式 重要!
- renderWindowInteractor.Initialize();
- //renderWindowControl1.Enabled = false;
- return;
- // Create a simple sphere. A pipeline is created.
- /*vtkSphereSource sphere = vtkSphereSource.New();
- sphere.SetThetaResolution(8);
- sphere.SetPhiResolution(16);
- vtkShrinkPolyData shrink = vtkShrinkPolyData.New();
- shrink.SetInputConnection(sphere.GetOutputPort());
- shrink.SetShrinkFactor(0.9);
- vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
- mapper.SetInputConnection(shrink.GetOutputPort());
- // The actor links the data pipeline to the rendering subsystem
- vtkActor actor = vtkActor.New();
- actor.SetMapper(mapper);
- actor.GetProperty().SetColor(1, 0, 0);
- // Create components of the rendering subsystem
- //
- vtkRenderer ren1 = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();
- vtkRenderWindow renWin = renderWindowControl1.RenderWindow;
- // Add the actors to the renderer, set the window size
- //
- ren1.AddViewProp(actor);
- renWin.SetSize(250, 250);
- renWin.Render();
- vtkCamera camera = ren1.GetActiveCamera();
- camera.Zoom(1.5);*/
- }
- private void renderWindowControl1_Paint(object sender, PaintEventArgs e)
- {
- //viewer_cloud();
- }
- //private void set_camera_Click(object sender, EventArgs e)
- //{
- // double x = double.Parse(xbox.Text);
- // double y = double.Parse(ybox.Text);
- // double z = double.Parse(zbox.Text);
- // double dx = double.Parse(dxbox.Text);
- // double dy = double.Parse(dybox.Text);
- // double dz = double.Parse(dzbox.Text);
- // vtkCamera camera = new vtkCamera(); //-4.1, 0.5,2.0, 0.35,0 0.9
- // camera.SetPosition(x, y, z);
- // camera.SetViewUp(dx, dy, dz);
- // vtkRenderer renderer = renderWindowControl2.RenderWindow.GetRenderers().GetFirstRenderer();
- // renderer.SetActiveCamera(camera);
- // renderWindowControl2.Refresh();
- //}
- //private void getdirection_Click(object sender, EventArgs e)
- //{
- // vtkRenderer renderer = renderWindowControl2.RenderWindow.GetRenderers().GetFirstRenderer();
- // double[] d = renderer.GetActiveCamera().GetViewUp();
- // double[] p = renderer.GetActiveCamera().GetPosition();
- // xbox.Text = p[0].ToString();
- // ybox.Text = p[1].ToString();
- // zbox.Text = p[2].ToString();
- // dxbox.Text = d[0].ToString();
- // dybox.Text = d[1].ToString();
- // dzbox.Text = d[2].ToString();
- //}
- //private void btn_car_Click(object sender, EventArgs e)
- //{
- // Car_info car_info = new Car_info();
- // car_info.correct = true;
- // car_info.cx = double.Parse(cx_box.Text);
- // car_info.cy = double.Parse(cy_box.Text);
- // car_info.theta = double.Parse(theta_box.Text) / 180.0 * Math.PI;
- // car_info.wheel_base = double.Parse(wheel_base_box.Text);
- // car_info.width = double.Parse(width_box.Text);
- // car_info.front_theta = double.Parse(front_theta_box.Text) / 180.0 * Math.PI;
- // viewer_car(car_info);
- //}
- private void button_play_sound_Click(object sender, EventArgs e)
- {
- //UILocalize.InfoTitle = "提示";
- //UILocalize.SuccessTitle = "正确";
- //UILocalize.WarningTitle = "警告";
- //UILocalize.ErrorTitle = "错误";
- //UILocalize.AskTitle = "提示";
- //UILocalize.InputTitle = "输入";
- //UILocalize.CloseAll = "全部关闭";
- //UILocalize.OK = "确定";
- //UILocalize.Cancel = "取消";
- //UILocalize.GridNoData = "[ 无数据 ]";
- //UILocalize.GridDataLoading = "数据加载中 ......";
- //UILocalize.GridDataSourceException = "数据源必须为DataTable或者List";
- m_sound_player.SoundLocation = "C:\\Users\\Administrator\\Desktop\\文件\\kldykxq.wav";
- m_sound_player.Load();
- m_sound_player.PlayLooping();
- }
- private void button_stop_sound_Click(object sender, EventArgs e)
- {
- m_sound_player.Stop();
- }
- public void HandleTime(Object myObject, EventArgs myEventArgs)
- {
- lock (m_lock)
- {
- viewer_cloud(m_points);
- viewer_car(m_car_info);
- }
- }
- private void FormVtk_Load(object sender, EventArgs e)
- {
- //设置定时器属性
- m_timerGetTime.Tick += new EventHandler(HandleTime);
- m_timerGetTime.Interval = 50;
- m_timerGetTime.Enabled = true;
- //开启定时器
- m_timerGetTime.Start();
- m_viewer_ledDisplay_thread.Start();
- //设置最大化
- //this.WindowState = FormWindowState.Maximized;
- var screens = Screen.AllScreens;
- m_auto_resize_form.controllInitializeSize(this);
- /*//若当前只有一块显示器
- if (Screen.AllScreens.Length < 2)
- return;
- //0主显示器(系统默认,可设置哪块显示器为主显示器)1扩展显示器
- this.Location = new Point(screens[1].Bounds.Left, screens[1].Bounds.Top);
- this.FormBorderStyle = FormBorderStyle.None; //设置窗体为无边框样式
- this.WindowState = FormWindowState.Maximized; //最大化窗体*/
- }
- private void FormVtk_FormClosing(object sender, FormClosingEventArgs e)
- {
- m_timerGetTime.Stop();
- isClosed = true;
- }
- public void FormVtkUninit()
- {
- isClosed = true;
- m_viewer_ledDisplay_thread.Abort();
- m_timerGetTime.Stop();
- }
- private void FormVtk_SizeChanged(object sender, EventArgs e)
- {
- m_auto_resize_form.controlAutoSize(this);
- }
- public void show_correct_tip_image()
- {
- this.results_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/tipimage/" + "0.ico");
- }
- public void show_error_tip_image()
- {
- this.results_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/tipimage/" + "1.ico");
- }
-
- }
- }
|