Java 在处理中:顺时针绕着 window 无限循环
Java in Processing: Make a circle go clockwise around the window endlessly
我当前的代码显示了一个圆圈,它顺时针绕 window 旋转一次,然后在它绕第二圈时从右上角移出屏幕。我怎样才能编辑我的代码,让圆圈继续无休止地绕着屏幕转,永远不会离开边缘?
// cirlce radius
final int radius = 25;
// circle x position
int xPos = 15;
int yPos = 15;
int xDir = 4;
int yDir = 0;
void setup()
{
size(500, 500);
background(177, 237, 247);
}
void draw()
{
background(177, 237, 247);
ellipse(xPos, yPos, radius, radius);
xPos = xPos + xDir;
yPos = yPos + yDir;
if (xPos > width - 15) {
yDir = 4;
xDir = 0;
} if (yPos > height - 15) {
xDir = -4;
yDir = 0;
} if (xPos < width - 485) {
xDir = 0;
yDir = -4;
} if (yPos < height - 485) {
yDir = 0;
xDir = 4;
}
}
ellipse
的第三个和第四个参数是轴的长度,而不是半轴的长度。因此,您需要将 radius
乘以 2。
当椭圆到达一条边时,需要用边限制椭圆的位置:
// cirlce radius
final int radius = 25;
// circle x position
int xPos = radius;
int yPos = radius;
int xDir = 4;
int yDir = 0;
void setup() {
size(500, 500);
background(177, 237, 247);
}
void draw()
{
background(177, 237, 247);
ellipse(xPos, yPos, radius*2, radius*2);
xPos = xPos + xDir;
yPos = yPos + yDir;
if (xPos > width - radius) {
xPos = width - radius;
yDir = 4;
xDir = 0;
}
if (yPos > height - radius) {
yPos = height - radius;
xDir = -4;
yDir = 0;
}
if (xPos < radius) {
xPos = radius;
xDir = 0;
yDir = -4;
}
if (yPos < radius) {
yPos = radius;
yDir = 0;
xDir = 4;
}
}
我当前的代码显示了一个圆圈,它顺时针绕 window 旋转一次,然后在它绕第二圈时从右上角移出屏幕。我怎样才能编辑我的代码,让圆圈继续无休止地绕着屏幕转,永远不会离开边缘?
// cirlce radius
final int radius = 25;
// circle x position
int xPos = 15;
int yPos = 15;
int xDir = 4;
int yDir = 0;
void setup()
{
size(500, 500);
background(177, 237, 247);
}
void draw()
{
background(177, 237, 247);
ellipse(xPos, yPos, radius, radius);
xPos = xPos + xDir;
yPos = yPos + yDir;
if (xPos > width - 15) {
yDir = 4;
xDir = 0;
} if (yPos > height - 15) {
xDir = -4;
yDir = 0;
} if (xPos < width - 485) {
xDir = 0;
yDir = -4;
} if (yPos < height - 485) {
yDir = 0;
xDir = 4;
}
}
ellipse
的第三个和第四个参数是轴的长度,而不是半轴的长度。因此,您需要将 radius
乘以 2。
当椭圆到达一条边时,需要用边限制椭圆的位置:
// cirlce radius
final int radius = 25;
// circle x position
int xPos = radius;
int yPos = radius;
int xDir = 4;
int yDir = 0;
void setup() {
size(500, 500);
background(177, 237, 247);
}
void draw()
{
background(177, 237, 247);
ellipse(xPos, yPos, radius*2, radius*2);
xPos = xPos + xDir;
yPos = yPos + yDir;
if (xPos > width - radius) {
xPos = width - radius;
yDir = 4;
xDir = 0;
}
if (yPos > height - radius) {
yPos = height - radius;
xDir = -4;
yDir = 0;
}
if (xPos < radius) {
xPos = radius;
xDir = 0;
yDir = -4;
}
if (yPos < radius) {
yPos = radius;
yDir = 0;
xDir = 4;
}
}