38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
using Autodesk.Revit.DB;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace GraphicsStudy
|
||
{
|
||
public static class VectorsMethod
|
||
{
|
||
/// <summary>
|
||
/// 向量是否平行
|
||
/// </summary>
|
||
/// <param name="vector1"></param>
|
||
/// <param name="vector2"></param>
|
||
/// <param name="v">true为同向平行,false为反向平行,null为平行</param>
|
||
/// <param name="tolerance">允许误差的角度</param>
|
||
/// <returns></returns>
|
||
public static bool IsParallel(this XYZ vector1, XYZ vector2, bool? v = null, double tolerance = 0.1)
|
||
{
|
||
if (v == null)
|
||
{
|
||
return vector1.AngleTo(vector2) > (180 - tolerance).ToRad() || vector1.DistanceTo(vector2) < tolerance.ToRad();
|
||
}
|
||
else if (v == true)
|
||
{
|
||
return vector1.AngleTo(vector2) < tolerance.ToRad();
|
||
}
|
||
else
|
||
{
|
||
return vector1.AngleTo(vector2) > (180 - tolerance).ToRad();
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|