/// <summary>
/// 判断多边形是否为平行四边形
/// </summary>
/// <param name="pPolygon">多边形</param>
/// <returns></returns>
public bool IsParallelogram(IPolygon pPolygon)
{
bool bResult = false;
if (pPolygon == null)
{
return false;
}
try
{
IPointCollection pPointCol = pPolygon as IPointCollection;
这里判断5个点,是因为AE中绘制多边形是从起点开始,再绘制到起点结束,为一个封闭的图形
if (pPointCol.PointCount != 5)
{
return false;
}
IPoint pFstPt = null;
IPoint pSecPt = null;
IPoint pTrdPt = null;
IPoint pForPt = null;
这些点是按照绘制顺序来存储的
pFstPt = pPointCol.get_Point(0);
pSecPt = pPointCol.get_Point(1);
pTrdPt = pPointCol.get_Point(2);
pForPt = pPointCol.get_Point(3);
ILine pFstLine = new LineClass();
ILine pSecLine = new LineClass();
ILine pTrdLine = new LineClass();
ILine pForLine = new LineClass();
获得四边形的四条边
pFstLine.PutCoords(pFstPt, pSecPt);
pSecLine.PutCoords(pSecPt, pTrdPt);
pTrdLine.PutCoords(pTrdPt, pForPt);
pForLine.PutCoords(pForPt, pFstPt);
对边相等则是平行四边形
if (pFstLine.Length == pTrdLine.Length && pSecLine.Length == pForLine.Length)
{
bResult = true;
}
}
catch (Exception ex)
{
bResult = false;
}
return bResult;
}
判断多边形是否为平行四边形
最新推荐文章于 2024-07-27 08:00:00 发布