随着球的移动改变线条的颜色

发布于 2024-11-02 07:41:03 字数 398 浏览 0 评论 0原文

我必须在线上移动一个圆圈,

ctx1.arc(x, y, 10, 0, Math.PI * 2, true);

我想随着球的移动将线的颜色从灰色更改为红色。我正在尝试这个

function rancolour() 
{ 
   var red = Math.floor(Math.random() *255); 
   var green = Math.floor(Math.random() *255); 
   var blue = Math.floor(Math.random() * 255); 
   ctx1.color = 'rgb('+red+','+green+','+blue+')'; 
}

我可以帮忙吗?两者都是画布元素。

I had to move a circle on line

ctx1.arc(x, y, 10, 0, Math.PI * 2, true);

I want to change the color of line from grey to red with the movement of ball. I was trying this

function rancolour() 
{ 
   var red = Math.floor(Math.random() *255); 
   var green = Math.floor(Math.random() *255); 
   var blue = Math.floor(Math.random() * 255); 
   ctx1.color = 'rgb('+red+','+green+','+blue+')'; 
}

Can any I help?? Both are canvas element.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七禾 2024-11-09 07:41:03

如果您的行从 (x1,y1) 开始,并在 (x2,y2) 结束,当前位置为 (x,y) ,然后您可以计算每个点所需的 RGB 颜色:

var percent=((x2-x)*(x2-x)+(y2-y)*(y2-y))/((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); 
ctx1.color='rgb('+(128*(1-percent)+255*percent)+','+(128*(1-percent))+','+(128*(1-percent))+')';

这会将球的颜色从灰色 rgb(128,128,128) 更改为红色 rgb(255,0,0)代码>.

If your line starts at (x1,y1) and ends at (x2,y2), with your current position being (x,y), then you can calculate the required RGB color at every point with:

var percent=((x2-x)*(x2-x)+(y2-y)*(y2-y))/((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); 
ctx1.color='rgb('+(128*(1-percent)+255*percent)+','+(128*(1-percent))+','+(128*(1-percent))+')';

This will change the color of your ball from grey rgb(128,128,128) to red rgb(255,0,0).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文