download:Vue3.0 Advanced combat: Developing high-quality music Web app

Enterprises have higher and higher requirements for Vue technology, but few people master the advanced technology of Vue 3.0. This course will help you stand out in the interview by writing a real, highly realistic and complex front-end project of music player, allowing you to gain practical experience in the development of vue3.0 advanced technology. Suitable for people with more than one year of work experience front-end practitioners have a certain Vue and JS foundation, Proficient in HTML, CSS and JavaScript programming with Vue foundation and practical development experience in Vue. Experience in node.js, NPM and WebPAC @ vue/cli 4.5.9

canvas.drawLine(x1, y1, x2, y2, scoreRingPaint); axisLablePaint.setTextSize(axisLableTextSize); axisLablePaint.setTextAlign(Paint.Align.CENTER); axisLablePaint.setColor(mInnerScoreRingColor); float axisLable_fonth = getFontHeight(axisLablePaint); float labelRadius =innerScoreDiameter/2 - inner_ringWidth - axisLable_fonth/2 + 3; float x3 = (float) (centerX + labelRadius * sinValue); float y3 =(float) (centerY + labelRadius * cosValue); canvas.save(); canvas.rotate(90+ degree,x3,y3); DrawText (axisLabelStrs[I],x3,y3 + getFontCenterYToBaseLine(axisLablePaint),axisLablePaint); canvas.restore(); } scoreTextPaint.setTextAlign(Paint.Align.CENTER); scoreTextPaint.setTextSize(scoreTextSize); scoreTextPaint.setColor(mScoreColor); double rAngle = Math.toRadians(90 - (-180 + offset_degree)); // radians float offset_y = (float)(maxOutterScoreRadius* math.cos (rAngle)); float scoreBaselineY = centerY + offset_y; float tempH = getFontTopYToBaseline(scoreTextPaint); canvas.drawText(nFormat.format(score), centerX, scoreBaselineY, scoreTextPaint); scoreTextPaint.setTextSize(scoreTitleTextSize); scoreTextPaint.setColor(mScoreTitleColor); float scoreTitleBaselineY = scoreBaselineY - tempH - Tool.dpToPx(2); canvas.drawText(mScoreTitleStr, centerX, scoreTitleBaselineY, scoreTextPaint); } public static float getFontHeight(Paint textPaint){ Paint.FontMetrics fm = textPaint.getFontMetrics(); return (float)Math.ceil(fm.descent - fm.ascent) + 3; } public static float getFontTopYToBaseline(Paint textPaint){ Paint.FontMetrics fm = textPaint.getFontMetrics(); return (float)Math.ceil(-fm.ascent) + 3; } public static float getFontBottomYToBaseline(Paint textPaint){ Paint.FontMetrics fm = textPaint.getFontMetrics(); return (float)Math.ceil(fm.descent) + 3; } public static float getFontCenterYToBaseLine(Paint textPaint){ Paint.FontMetrics fm = textPaint.getFontMetrics(); float fonth = getFontHeight(textPaint); return (float)Math.abs(Math.ceil(fonth/2- fm.descent)); }Copy the code