3

所以我正在尝试绘制一个简单的色轮,显示红色、绿色和蓝色分量以及它们之间的关系。问题是我的(简单的,1 度的)弧线正在采用后来的弧线的笔划,即使我正在使用beginPath()and closePath()

我目前的进展是在http://meyerweb.com/eric/css/colors/hsl-from-rgb.html。最里面的戒指是该戒指的用途,蓝色渐变为黑色。下一个响铃应该只显示绿色渐变到黑色,第三个响铃应该只有红色渐变到黑色。最外面、最厚的环旨在显示色轮周围的全光谱,您可以在细辐条中看到(就像在其他环中一样)。

如果我颠倒绘图块的顺序,那么最外圈很好,所有内圈都乱了,所以很明显笔画样式正在向前泄漏。我只是不知道如何或为什么,也不知道如何克服这个问题。我应该只定义四个单独的对象(例如,ctx1通过ctx4)并分别绘制到每个对象吗?

我查看了画布中 arc 的不同 fillStyle 颜色,但那里的建议似乎对我没有帮助。其他谷歌搜索没有产生任何用处。

4

2 回答 2

1

RGB 值不能使用小数,需要四舍五入。

http://jsfiddle.net/M6KbD/

于 2012-06-08T19:50:27.240 回答
1

我没有仔细看你的代码,但问题可能不在于画布,它可能是你绘制所有内容的顺序。

你有4套,对吧?您正在从第一组中抽取 1 个,从第二个中抽取 1 个,从第三个中抽取 1 个,从第四个中抽取 1 个,然后从第一个中抽取另外 1 个......

如果您更改顺序,一切都会好起来的:

http://jsfiddle.net/muatT/

(懒惰地,我只是照原样复制了整个 for 循环。你可能可以简化很多代码)

于 2012-06-08T19:38:01.960 回答