使用Chart.js 2.4.0绘制三次贝塞尔曲线

使用Chart.js 2.4.0绘制三次贝塞尔曲线,chart.js,bezier,Chart.js,Bezier,我使用Chart.js,我需要渲染一个由四个数据点组成的图。我确实知道所有四个点的坐标,但我想知道,在贝塞尔曲线的上下文中,如何通过将P2和P3视为“控制点”来告诉我的图表,它应该连接P1和P4 更新: 同时,我还对具有该描述的line对象的属性capBezierPoints进行了深入研究: 如果为true,则贝塞尔控制点保留在图表中。如果为false,则不执行任何限制。 关于该属性的文档很少,因此我只能假设如果将其设置为false,则不会绘制控制点(在我的示例中,我有两个控制点,一个起点和一个

我使用Chart.js,我需要渲染一个由四个数据点组成的图。我确实知道所有四个点的坐标,但我想知道,在贝塞尔曲线的上下文中,如何通过将P2和P3视为“控制点”来告诉我的图表,它应该连接P1和P4

更新

同时,我还对具有该描述的line对象的属性
capBezierPoints
进行了深入研究:

如果为true,则贝塞尔控制点保留在图表中。如果为false,则不执行任何限制。

关于该属性的文档很少,因此我只能假设如果将其设置为false,则不会绘制控制点(在我的示例中,我有两个控制点,一个起点和一个终点)。但是,我不知道如何告诉Chart.js我的哪些点是控制点

最近,我确实将四个点传递到我的数据集,如下所示:

 var data = {
        datasets: [
            {
                label: "start point",
                data: [
                    {
                        x: bezierCurve.getPoint(0).x,
                        y: bezierCurve.getPoint(0).y
                    },
                    {
                        x: bezierCurve.getPoint(1).x,
                        y: bezierCurve.getPoint(1).y
                    },
                    {
                        x: bezierCurve.getPoint(2).x,
                        y: bezierCurve.getPoint(2).y
                    },
                    {
                        x: bezierCurve.getPoint(3).x,
                        y: bezierCurve.getPoint(3).y
                    }
                ],
                fill: false,
                lineTension: 1,
                borderColor: "blue"
            }

        ]
    }

    var options = {
        responsive: true,
        scales: {
            xAxes: [{
                type: 'linear',
                position: 'bottom',
                ticks: {
                    beginAtZero: true,
                    max: Math.round(maxX * 1.1)
                }
            }],
            yAxes: [{
                display: true,
                ticks: {
                    beginAtZero: true,
                    max: Math.round(maxY * 2)
                }
            }]
        },
        legend: {
            display: false
        }
    }

    Chart.defaults.global.tooltips.enabled = false;
    Chart.defaults.global.elements.line.capBezierPoints = false;
    Chart.defaults.global.elements.line.tension = 1.0;

    this.displayedBezierCurveChart = new Chart(context, {
        type: 'line',
        data: data,
        options: options
    });
使用该实现,将绘制一条连接所有四个点的线。 我需要的是一条连接起点和终点的线,考虑到中间的两个控制点


有什么想法吗?

这不是chart.js API文档所解释的吗?如果没有,这绝对是一件需要向Chart.js人员报告的事情,这样他们就可以将信息添加到文档中,这样不仅您,而且您之后的每个人都可以轻松找到这些信息。如果你只是在这里问一下,那是不会发生的。我通读了这篇文章,发现了贝塞尔曲线的一些方面,但是这篇文档没有指出如何将我的控制点传递给图表。因此,我看不到有人提到我的具体问题。同意值得向Chart.js人员报告,但他们在Github页面上写道stackoverflow是主要的支持渠道。那么,你知道如何联系他们吗?提出一个问题,解释可能需要添加到文档中的信息,在给出足够完整的描述之后,还可以链接到这个问题,并注意,虽然这应该是他们的主要支持渠道,但没有人看它。我不能说我是那些声称他们的官方支持频道的粉丝,因为这会导致类似的情况。这不是chart.js API文档所解释的吗?如果没有,这绝对是一件需要向Chart.js人员报告的事情,这样他们就可以将信息添加到文档中,这样不仅您,而且您之后的每个人都可以轻松找到这些信息。如果你只是在这里问一下,那是不会发生的。我通读了这篇文章,发现了贝塞尔曲线的一些方面,但是这篇文档没有指出如何将我的控制点传递给图表。因此,我看不到有人提到我的具体问题。同意值得向Chart.js人员报告,但他们在Github页面上写道stackoverflow是主要的支持渠道。那么,你知道如何联系他们吗?提出一个问题,解释可能需要添加到文档中的信息,在给出足够完整的描述之后,还可以链接到这个问题,并注意,虽然这应该是他们的主要支持渠道,但没有人看它。我不能说我是那些声称他们的官方支持频道的粉丝,因为这会导致类似的情况。