美文网首页
自定义view之学习地图(二次函数)

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

作者: 呵呵_9e25 | 来源:发表于2019-02-19 14:58 被阅读0次

    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上面

    相关文章

      网友评论

          本文标题:自定义view之学习地图(二次函数)

          本文链接:https://www.haomeiwen.com/subject/tyxfyqtx.html