我是Processing的新手,我想制作X个省略号。我将从csv文件中获取该数字。有没有选择制作多个椭圆?
答案 0 :(得分:1)
你的问题有点含糊不清,尤其是这一部分:
我会从csv文件中获取该号码。
您是从csv文件中读取每个椭圆的坐标(行数是绘制的椭圆数)还是只读取一个整数值X
,表示您需要绘制的椭圆数量(无论他们的位置/大小/等等。)
让我们从最基本的部分开始:绘制省略号。 这是使用需要4个参数的ellipse()函数实现的:
e.g。在坐标10,10处绘制一个20x20像素的椭圆:
ellipse(10,10,20,20);
在阅读CSV文件方面,正如我在评论中所提到的,loadTable()功能将有助于此。参考页面实际上包括如何遍历每一行并提取值的示例。
以下是基于csv文件中存在的x,y值绘制省略号的基本示例。它加载一个csv文件,然后遍历每一行。对于每一行,它访问第一个和第二个值。请注意,索引从0开始,而不是从1开始。
Table table;
void setup(){
//load the csv file
table = loadTable("data.csv");
//loop through each row
for (TableRow row : table.rows()) {
//extract the first and second value from the current row
float x = row.getFloat(0);//extract the first value on the row, at index 0
float y = row.getFloat(1);//extract the second value on the row, at index 1
//use the current x,y values to draw an ellipse
ellipse(x,y,5,5);
}
}
以下是示例data.csv文件:
10,10
20,20
50,50
90,90
你可以使用Table class添加标题来做很多奇特的事情,这样你就可以通过标签而不是索引来获取值。
如果您只是读取值X并根据不同参数绘制省略号,则只需使用for loop即可。 如果您使用这样的编程基础知识,它们很容易就像1,2,3:
您可以将它们想象为一种代码结构,允许您从A到B进行计数。 假设您正在计算10个步骤。 for循环将有3个要求:
语法大致如下(3个要求由;
分隔):
for (initial value ; condition ; incrementation){
//instructions to repeat while condition is true
}
例如:
for (int step = 0; step < 10; step = step+1) {
println("step " + step);
}
此时您可以跳过步骤(跳):
for (int step = 0; step < 10; step = step+2) {
println("step " + step);
}
甚至倒退/向后计数:
for (int step = 10; step > 0; step = step-1) {
println("step " + step);
}
然后可以很容易地应用于绘制x个椭圆:
int x = 30;//assuming this value can be easily read
for (int ellipseCount = 0; ellipseCount < x; ellipseCount = ellipseCount+1) {
float size = random(10);
ellipse(random(width),random(height),size,size);
}
答案 1 :(得分:0)
听起来你正在寻找一个基本的 for loop :
int ellipseCount = 10; //get this from csv file
size(500, 500);
background(0);
for (int i = 0; i < ellipseCount; i++) {
ellipse(random(width), random(height), 10, 10);
}