我需要椭圆保持居中,并沿着直线的长度来回移动
I need the ellipse to remain centered and move back and forth along the length of the line
本文关键字:移动 更新时间:2023-11-07
代码是我使用processing.js库为项目编写的程序的一个片段。我需要椭圆沿着对角线的整个长度移动,同时保持在直线的中心。完成后,共有八条直线,椭圆前后滑动。这是第五行。你会注意到,我必须创建一个特殊的速度变量,才能使球体沿对角线向下移动(代码中的另外两条对角线在没有这个的情况下工作)。
它适用于图形中的所有其他线条。这一个完美地向下移动,然后在上升的过程中"偏离轨道";当它到达顶部时,它只是以一种奇怪的(随机的)方式反弹。我可以在不更改基本格式的情况下修复它吗?非常感谢。
var x5 = 113;
var y5 = 27;
var speed5 = 1;
var speed5y = speed5 * 2;
draw = function() {
//lineBallFive
line(100, 1, 300, 400);
fill(0, 225, 255);
ellipse(x5, y5, ballSize, ballSize);
if (x5 > 300) {
speed5 = -3;
}
if (x5 < 100) {
speed5 = 3;
}
if (y5 > 400) {
speed5y = 2 * -3;
}
if (y5 < 1) {
speed5y = 3;
}
}
您可以使用lerp()
函数使用线性插值移动椭圆,而不是相对于椭圆本身移动椭圆。这将使同步线路变得更加容易。
这里有一个小例子:
var amount = 0;
var speed = .001;
function setup() {
size(500, 500);
}
void draw() {
var startX = 0;
var startY = 0;
var endX = width;
var endY = height;
var currentX = lerp(startX, endX, amount);
var currentY = lerp(startY, endY, amount);
background(0);
ellipse(currentX, currentY, 20, 20);
amount += speed;
}
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- FabricJs-限制主对象内添加对象的移动区域
- 如何从画布上的某个移动事件中获取X和Y
- 触摸移动时切换到新元素
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 停止jQuery UI滑块移动超过给定值
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- JQuery移动动态分区页面
- XMLHttpRequest在移动设备上的chrome上不起作用
- 如何使bxslider仅在移动视图中处于活动状态
- css停止图像在滚动中移动
- jquery移动对齐按钮取决于内容大小
- 背景图像顶部的滚动图像不移动
- 如何在react js中移动第二个组件
- DataTables在表之间移动行
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标