java - 在处理中形成循环
问题描述
我正在制作关于处理的动画。然后,我有一个关于循环的问题。通常,我的代码更长。但是,我制作了一个简单的代码,对初学者也很有用。我的示例代码:
void setup()
{
size(500, 500);
coordinates = loadStrings("coordinates.txt");
beginShape(); // It combines the all of vertexes
}
void draw()
{
point(initialX, initialY);
println(initialX, initialY, p);
}
我该怎么做?
解决方案
您很可能需要修复您的setup
方法以从行中获取点数据,然后修改draw
方法以在循环中使用这些点:
int[][] points;
int curr = 0;
void setup() {
size(500, 500);
strokeWeight(4);
frameRate(5);
coordinates = loadStrings("coordinates.txt");
beginShape(); // It combines the all of vertexes
points = new int[coordinates.length][2];
int row = 0;
for (String line : coordinates) {
String[] pair = line.split(" ");
points[row] = new int[] { Integer.parseInt(pair[0]), Integer.parseInt(pair[1])};
println(points[row][0]); // print x
println(points[row][1]); // print y
row++;
}
fixLineCoords();
endShape(CLOSE);
}
void fixLineCoords() {
int indexStart = curr % points.length;
int indexEnd = (curr + 1) % points.length;
initialX = points[indexStart][0];
initialY = points[indexStart][1];
finalX = points[indexEnd][0];
finalY = points[indexEnd][1];
deltaX = abs(finalX - initialX);
deltaY = abs(finalY - initialY);
p = 2 * deltaY - deltaX;
println("Line between points " + curr + " and " + (curr+1));
counter = 0; // reset counter;
}
void draw() {
point(initialX, initialY);
println(initialX, initialY, p);
if (finalX > initialX )
initialX++;
else
initialX--;
if (p < 0) {
p = p + 2 * deltaY;
} else {
if (initialY > finalY)
initialY--;
else
initialY++;
p = p + 2 * deltaY - 2 * deltaX;
}
counter++;
if (counter > deltaX) {
if (curr == points.length) {
noLoop(); // all points processed
} else {
curr++;
fixLineCoords();
}
}
}
结果:
推荐阅读
- java - 当前位置在地理围栏区域时应用程序崩溃
- objective-c - 从objective-c 访问config.xml?
- javascript - Thymeleaf 表单选择带有选项卡索引的选项下拉列表
- angular - 所有文本都在聊天 UI 页面中显示在屏幕顶部
- python - 使用 Django REST 框架跨微服务共享数据库关系
- spring-boot - 在我的 spock spring 测试中无法获取应用程序上下文
- python - 使位置索引超出范围错误
- c# - 如何按照一定的规则组织收藏?
- python - 星号 `*` 在 Python 3 中的字符串格式化方法 `.format(*) 中如何工作?
- java - 添加新行为时 SPI 应如何演变