shichunxiang 发表于 2011-5-8 10:19:00

向量

//判断三点的方向ture表示顺时针,false表示逆时针
      public boolisClockWise(Point3d spt, Point3d ptTo, Point3d ept)
      {
            Vector3d spt_ptTo = new Vector3d(spt.X - ptTo.X, spt.Y - ptTo.Y, spt.Z - ptTo.Z);
            Vector3d spt_ept = new Vector3d(spt.X - ept.X, spt.Y - ept.Y, spt.Z - ept.Z);
            Vector3d vec= spt_ptTo.CrossProduct(spt_ept);
            double angle = vec.GetAngleTo(Vector3d.ZAxis);
            if (angle != 0) return true;//顺时针
            else return false; //逆时针      
      }

这个函数在画圆弧时十分有用,这也是我今天刚刚学会的,不足之处还请各位多多指教

sieben 发表于 2011-5-8 10:56:49

1,是否测试过三点同线的情况?
2,是否测试过Z坐标不为零或说Z坐标不相等的情况?

shichunxiang 发表于 2011-5-8 11:05:32

谢谢指点
页: [1]
查看完整版本: 向量