Android 画布绘制、贝塞尔曲线、圆弧最高点
我正在努力完成一些数学方面的工作,我有一条贝塞尔曲线,我试图在它的最高峰上画一个圆,当它是一条直的水平线时,很好,但一旦我弯曲这条线(cubicTo)并使用PathMeasure.getPosTan(…),它就会离开最高峰。请参阅下面所附的图片和代码 还有画圆圈的部分Android 画布绘制、贝塞尔曲线、圆弧最高点,android,canvas,path,curve,Android,Canvas,Path,Curve,我正在努力完成一些数学方面的工作,我有一条贝塞尔曲线,我试图在它的最高峰上画一个圆,当它是一条直的水平线时,很好,但一旦我弯曲这条线(cubicTo)并使用PathMeasure.getPosTan(…),它就会离开最高峰。请参阅下面所附的图片和代码 还有画圆圈的部分 arcPathMeasure.getPosTan(mArcPeakX, positionArray, null) canvas.drawCircle(0f, height.toFloat(), 10f, paint) can
arcPathMeasure.getPosTan(mArcPeakX, positionArray, null)
canvas.drawCircle(0f, height.toFloat(), 10f, paint)
canvas.drawCircle(positionArray[0], positionArray[1], 10f, paint)
canvas.drawCircle(width.toFloat(), height.toFloat(), 10f, paint)
我不知道我遗漏了什么数学知识,但一旦直线弯曲,圆圈就会前进,并且不会绘制在圆弧/曲线的顶点上 哦,我的。。。我不知道从哪里开始。但无论如何,我会尝试,或者我会尝试找到一些示例代码,其中有一条曲线,并且在cubicor的每个(x,y)上绘制一个形状,如果你需要一些数学,那么请看,你真的需要数学,在这里。您需要通过查找贝塞尔函数导数的根来找到曲线的最大值。谢天谢地,贝塞尔函数实际上是愚蠢的项和,求导数基本上是零功()。找到导数为零的时间值(注意可能不止一个),基本上就完成了。
arcPathMeasure.getPosTan(mArcPeakX, positionArray, null)
canvas.drawCircle(0f, height.toFloat(), 10f, paint)
canvas.drawCircle(positionArray[0], positionArray[1], 10f, paint)
canvas.drawCircle(width.toFloat(), height.toFloat(), 10f, paint)