RevitAPI: Revit中求两条直线的夹角XYZ.AngleTo

有时候我们并不知道一个函数可能会有什么行为,例如XYZ.AngleTo的返回值是0-2π还是0-π,又找不到对应的文档,那就干脆自己动手测试一下了,代码如下:

Line line1 = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(10, 0, 0));
Line line2 = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(0, 10, 0));    // L
Line line3 = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(-10, 10, 0));  // \-
Line line4 = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(-10, -10, 0)); // /-
Line line5 = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(-10, 0, 0));   // --
Line line6 = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(0, 10, 0));    // |-
Line line7 = Line.CreateBound(new XYZ(0, 10, 0), new XYZ(10, 10, 0));  // =
double angle;
angle = line1.Direction.AngleTo(line2.Direction);
Trace.WriteLine(angle);
angle = line1.Direction.AngleTo(line3.Direction);
Trace.WriteLine(angle);
angle = line1.Direction.AngleTo(line4.Direction);
Trace.WriteLine(angle);
angle = line1.Direction.AngleTo(line5.Direction);
Trace.WriteLine(angle);
angle = line1.Direction.AngleTo(line6.Direction);
Trace.WriteLine(angle);
angle = line1.Direction.AngleTo(line7.Direction);
Trace.WriteLine(angle);

输出值是:

1.5707963267949
2.35619449019234
2.35619449019234
3.14159265358979
1.5707963267949
0

用图形表示就是这样

RevitAPI: Revit中求两条直线的夹角XYZ.AngleTo_第1张图片

你可能感兴趣的:(Geometry,RevitAPI)