自定义view之学习地图(二次函数)

studymap

学习地图
github地址链接

Screenshot_20190219-145302.jpg

下面是绘制二次曲线的代码

/**
     * 绘制映射表
     *
     * @param canvas 画笔
     */
    private void drawMap(Canvas canvas) {
        initDf();
        map();
        for (Float key : funMap.keySet()) {
            canvas.drawPoint(key, funMap.get(key).floatValue(), mPaint);
        }
    }

其他关键代码

 /**
     * 初始化定义域
     */
    private void initDf() {
        for (float i = 0; i <= getMeasuredWidth(); i++) {
            Df.add(i);//初始化定义域
        }
    }

    /**
     * 对应法则
     *
     * @param x 原像(自变量)
     * @return 像(因变量)
     */
    private float f(Float x) {
        float h = getMeasuredHeight();
        float w = getMeasuredWidth();

        float y = h - m40 - (float) (Math.pow(x, 2) * (h - m80) / Math.pow(w, 2));
        return y;
    }

    /**
     * 遍历定义域,将原像x和像f(x)加入映射表
     */
    private void map() {
        for (Float x : Df) {
            funMap.put(x, f(x));
        }
        //添加所有点
    }

原理就是通过数学二次函数关系计算出函数点然后通过循环绘制到canvas上面,其他点和线条原理和这个代码一致

代码在我的github上面

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 4,750评论 2 32
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 3,979评论 3 40
  • 四年前我一次听说数据挖掘这个词,三年前我学习了数据挖掘理论知识,两年前我做了几个与数据挖掘有关的项目,一年前我成为...
    插着扇子的石头阅读 4,259评论 26 41
  • 教育就是认真对待每一件小事,用爱心去关爱孩子的点滴生活,让我们共同去构建平凡简单的教育生活。感谢青椒计划,让我的教...
    金塔469何凤梅阅读 405评论 0 0
  • 八月暑假,休息了半个月。让我特别知足,更幸运的是我订阅了通往财富自由之路。 走着学着,明确了很多。每天必须有进步。...
    牛小草_阅读 209评论 0 0