[Qt开发问题] 在用QPolarChart画极坐标的时候,当画线经过第一象限、第四象限、第三象限、第二象限后,再次回到第一象限时,为什么会经过原点,再到目标点,而不是直接到下一个点?求解答!
因为 QPolarChart 组件会将极坐标系中的角度视为一个循环的值,认为角度值 0 和 360 是等价的。当您绘制一条线时,从第一象限绕一圈后回到第一象限,QPolarChart 组件会自动将该线连接到原点,然后从原点再绘制到目标点。
你要避免的话,设个极坐标,使用 setRange() 函数显式地指定角度的范围。
举个例子,如果您的角度值范围是 0 到 360 度,则可以将极坐标轴的范围设置为 0 到 2 * pi:
QValueAxis *angleAxis = new QValueAxis;
angleAxis->setRange(0, 2 * M_PI); // M_PI 是 Qt 中预定义的 pi 常量
chart->addAxis(angleAxis, QPolarChart::PolarOrientationAngle);