主要内容

本页采用了机器翻译。点击此处可查看英文原文。

ispolycw

判断多边形顶点是否按顺时针顺序排列

    说明

    tf = ispolycw(x,y) 用于判断由 xy 定义的多边形的笛卡尔坐标系顶点是否按顺时针顺序排列。当顶点按顺时针顺序排列时,该函数返回逻辑值 1 (true);否则返回逻辑值 0 (false)。

    示例

    示例

    全部折叠

    指定多边形的顶点。在列表末尾重复第一个顶点,以闭合多边形。然后,判断顶点是否按顺时针顺序排列。

    x1 = [0 1 4 3 0];
    y1 = [0 1 3 2 0];
    ispolycw(x1,y1)
    ans = logical
       1
    
    

    顶点按顺时针顺序排列。将顶点的顺序颠倒过来,然后验证颠倒后的顶点顺序是否不是顺时针的。

    x2 = fliplr(x1);
    y2 = fliplr(y1);
    ispolycw(x2,y2)
    ans = logical
       0
    
    

    输入参数

    全部折叠

    x-多边形的坐标,指定为数值向量或数值向量的元胞数组。

    • 通过指定一个向量(例如 [39 45 19 39])来定义一个多边形。

    • 使用以下选项之一定义多个多边形:

      • 指定一个向量,并使用 NaN 值(例如 [37 46 31 20 37 NaN 45 49 35 32 45 NaN 35 40 42 35])将多边形分隔开。x 中的 NaN 值必须与 y 中的 NaN 值对应。

      • 指定一个向量元胞数组,例如 {[37 46 31 20 37],[45 49 35 32 45],[35 40 42 35]}x 中每个单元格中的向量大小必须与 y 中相应单元格中的向量大小一致。

    x 的大小和类型必须与 y 的大小和类型相匹配。

    y-多边形的坐标,指定为数值向量或数值向量的元胞数组。

    • 通过指定一个向量(例如 [-113 -49 -100 -113])来定义一个多边形。

    • 使用以下选项之一定义多个多边形:

      • 指定一个向量,并使用 NaN 值(例如 [69 90 105 79 69 NaN 6 52 43 14 6 NaN 18 32 22 18])将多边形分隔开。y 中的 NaN 值必须与 x 中的 NaN 值对应。

      • 指定一个向量元胞数组,例如 {[69 90 105 79 69],[6 52 43 14 6],[18 32 22 18]}y 中每个单元格中的向量大小必须与 x 中相应单元格中的向量大小一致。

    y 的大小和类型必须与 x 的大小和类型相匹配。

    输出参量

    全部折叠

    按顺时针顺序排列的顶点指示符,以逻辑向量形式返回。

    • 逻辑符号 1 (true) 表示多边形的相应顶点按顺时针顺序排列。

    • 逻辑符号 0 (false) 表示多边形的相应顶点并非按顺时针顺序排列。

    xy 定义多个多边形时,ispolycw 函数用于判断每个多边形的坐标是否按顺时针顺序排列。

    tf 的大小即为 xy 所指定的多边形数量。

    提示

    • 当多边形包含两个或更少的顶点时,ispolycw 函数返回 1 (true)。

    • 当多边形既不跨越反子午线,也不包含极点时,您可以将地理坐标作为输入传递给 ispolycw 函数。当经度数据范围覆盖 360 度时,该多边形包含一个极点。若要使用地理坐标作为输入,请将经度向量指定为 x,将纬度向量指定为 y

    算法

    当多边形与自身相交时,顶点的顺序并未明确定义。在这种情况下,ispolycw 函数会根据 y 值最低的左端顶点的前后两个顶点来确定顶点顺序。如果该函数无法根据 y 值最低的左端顶点来确定顺序,则会通过带符号的面积测试来确定顺序。

    版本历史记录

    在 R2006a 之前推出