ColorPicker.java 文件源码

java
阅读 38 收藏 0 点赞 0 评论 0

项目:ThunderMusic 作者:
private void drawPointerArrow(Canvas canvas) {

        int centerX = getWidth() / 2;
        int centerY = getHeight() / 2;

        double tipAngle = (colorHSV[2] - 0.5f) * Math.PI;
        double leftAngle = tipAngle + Math.PI / 96;
        double rightAngle = tipAngle - Math.PI / 96;

        double tipAngleX = Math.cos(tipAngle) * outerWheelRadius;
        double tipAngleY = Math.sin(tipAngle) * outerWheelRadius;
        double leftAngleX = Math.cos(leftAngle)
                * (outerWheelRadius + arrowPointerSize);
        double leftAngleY = Math.sin(leftAngle)
                * (outerWheelRadius + arrowPointerSize);
        double rightAngleX = Math.cos(rightAngle)
                * (outerWheelRadius + arrowPointerSize);
        double rightAngleY = Math.sin(rightAngle)
                * (outerWheelRadius + arrowPointerSize);

        arrowPointerPath.reset();
        arrowPointerPath.moveTo((float) tipAngleX + centerX, (float) tipAngleY
                + centerY);
        arrowPointerPath.lineTo((float) leftAngleX + centerX,
                (float) leftAngleY + centerY);
        arrowPointerPath.lineTo((float) rightAngleX + centerX,
                (float) rightAngleY + centerY);
        arrowPointerPath.lineTo((float) tipAngleX + centerX, (float) tipAngleY
                + centerY);

        valuePointerArrowPaint.setColor(Color.HSVToColor(colorHSV));
        valuePointerArrowPaint.setStyle(Style.FILL);
        canvas.drawPath(arrowPointerPath, valuePointerArrowPaint);

        valuePointerArrowPaint.setStyle(Style.STROKE);
        valuePointerArrowPaint.setStrokeJoin(Join.ROUND);
        valuePointerArrowPaint.setColor(Color.BLACK);
        canvas.drawPath(arrowPointerPath, valuePointerArrowPaint);

    }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号