幽兰聆雨 发表于 2024-6-15 14:53:14

C#动态绘图疑问

本帖最后由 幽兰聆雨 于 2024-6-17 14:26 编辑

动态绘图的时候出现这种情况咋解决啊?教学视频没出现这种情况。
lisp能用redraw解决,C#有类似的方法不?

2024.6.17,找到问题了,和屏幕刷新没关系,polyline修改顶点方法使用错误,应该是SetPointAt。

public class JigPdmx : EntityJig
{
   //定义JigPdmx的属性
   private Point2d _startPoint;//外部输入赋值后不变
   private Point2d _endPoint;//通过鼠标动态获取
   private double _size;//外部输入赋值后不变
   // 对象属性,不更新
   public JigPdmx(Point2d StartPoint, double Size) // 定义外部输入数据
         : base(new Polyline(6))//定义JigPdmx为具有6个点的polyline
   {
         this._startPoint = StartPoint;// 将JigPdmx的属性赋值
         this._size = Size;//将JigPdmx的属性赋值
   }
   //用于更新自定义对象(JigPdmx)属性
   protected override bool Update()
   {
         在这儿写一个类似redraw的操作
         Point2d[] pts = _startPoint.GetPdmxPoint(_endPoint, _size);
         ((Polyline)Entity).AddVertexAt(0, _startPoint, 0, 0, 0);
         ((Polyline)Entity).AddVertexAt(1, pts, 0, 0, 0);
         ((Polyline)Entity).AddVertexAt(2, pts, 0, 0, 0);
         ((Polyline)Entity).AddVertexAt(3, pts, 0, 0, 0);
         ((Polyline)Entity).AddVertexAt(4, pts, 0, 0, 0);
         ((Polyline)Entity).AddVertexAt(5, _endPoint, 0, 0, 0);
         return true;

   }
   //给_endPoint赋值
   protected override SamplerStatus Sampler(JigPrompts prompts)
   {
         //声明提示信息
         JigPromptPointOptions jppo = new JigPromptPointOptions("\n指定第二点");
         jppo.UserInputControls = UserInputControls.Accept3dCoordinates;
         //获取鼠标位置
         PromptPointResult ppr = prompts.AcquirePoint(jppo);
         //将当前鼠标位置点赋予_endPoint
         _endPoint = ppr.Value.ToPoint2d();
         return SamplerStatus.NoChange;
   }
}


你有种再说一遍 发表于 2024-6-15 16:16:47

https://gitee.com/inspirefunction/ifoxcad/blob/jing/tests/TestShared/TestJig.cs
很多疑问直接在ifox搜就好了

幽兰聆雨 发表于 2024-6-15 16:33:03

你有种再说一遍 发表于 2024-6-15 16:16
https://gitee.com/inspirefunction/ifoxcad/blob/jing/tests/TestShared/TestJig.cs
很多疑问直接在ifox ...

编程是感兴趣自学的,类似github这种平台不咋会用。
我看他定义TextPlacementJig : EntityJig的时候好像也没做刷新屏幕之类的操作啊?

你有种再说一遍 发表于 2024-6-15 17:30:52

本帖最后由 你有种再说一遍 于 2024-6-15 17:53 编辑

幽兰聆雨 发表于 2024-6-15 16:33
编程是感兴趣自学的,类似github这种平台不咋会用。
我看他定义TextPlacementJig : EntityJig的时候好像 ...
JigEx已经封装好了,看参数提示就行了,加入队列就是刷新...
要慢慢学,不要觉得能够一下子追上我们,我也得学了几年才会git,总不能说凭借感兴趣就不看别人代码吧,那么去哪里看别人代码呢?要么我博客,要么github啊
页: [1]
查看完整版本: C#动态绘图疑问