写点什么

如何区分封闭图形的内部和外部

用户头像
Changing Lin
关注
发布于: 刚刚
如何区分封闭图形的内部和外部

1.基本要素:

  • onDraw(Canvas)

  • Canvas

  • Paint

  • 坐标系(与中学数学不同)

  • 尺寸单位(到了 View 层都是 px,与 dp 无关,使用 dp 转换)

2.常用 Canvas API

  • dp 转换成 px 的方法


public static float dp2px(float dp){    return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, Resources.getSystem().getDisplayMetrics());}
复制代码


  • 封闭图形的内部和外部:

  • Path.Direction 类是什么意思


    /** 表示 封闭图形 添加到路径中的方向     * Specifies how closed shapes (e.g. rects, ovals) are oriented when they are added to a path.     */    public enum Direction {        /** clockwise */        CW  (0),    // must match enum in SkPath.h 顺时针        /** counter-clockwise */        CCW (1);    // must match enum in SkPath.h 逆时针
Direction(int ni) { nativeInt = ni; } final int nativeInt; }
复制代码


  • Path.FillType 类是什么意思


public enum FillType {        // these must match the values in SkPath.h        /**         * Specifies that "inside" is computed by a non-zero sum of signed edge crossings. 判断点是否是内部的依据是,由点向外划一条直线,穿过的边数,顺时针为1逆时针为-1,加起来非0就表示内部;0就是外部。         */        WINDING         (0),        /**         * Specifies that "inside" is computed by an odd number of edge crossings.判断点是否是内部的依据是,由点向外划一条直线,穿过的边数为奇数即为内部。Odd even 奇数偶数。         */        EVEN_ODD        (1),        /**         * Same as {@link #WINDING}, but draws outside of the path, rather than inside.         */        INVERSE_WINDING (2),        /**         * Same as {@link #EVEN_ODD}, but draws outside of the path, rather than inside.         */        INVERSE_EVEN_ODD(3);
FillType(int ni) { nativeInt = ni; }
final int nativeInt; }
复制代码


  • 仪表盘

发布于: 刚刚阅读数: 2
用户头像

Changing Lin

关注

获得机遇的手段远超于固有常规之上~ 2020.04.29 加入

我能做的,就是调整好自己的精神状态,以最佳的面貌去面对那些未曾经历过得事情,对生活充满热情和希望。

评论

发布
暂无评论
如何区分封闭图形的内部和外部