Java 从正在处理的csv文件中绘制多个形状

Java 从正在处理的csv文件中绘制多个形状,java,processing,Java,Processing,我是个新手,我想做X个椭圆。我将从csv文件中获取该数字。有没有制作多个椭圆的选项?听起来像是在寻找一个基本的for循环: 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); } int ellipseC

我是个新手,我想做X个椭圆。我将从csv文件中获取该数字。有没有制作多个椭圆的选项?

听起来像是在寻找一个基本的for循环:

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);
}
int ellipseCount=10//从csv文件获取此文件
大小(500500);
背景(0);
for(int i=0;i
你的问题有点模棱两可,尤其是这一部分:

我将从csv文件中获取该数字

您是从csv文件中读取每个椭圆的坐标(行数即绘制的椭圆数),还是仅读取单个整数值
X
,该整数值表示您需要绘制的椭圆数(无论其位置/大小/等)

让我们从最基本的部分开始:绘制椭圆。 这是通过使用需要4个参数的功能实现的:

  • x位置
  • y位置
  • 宽度
  • 高度
  • e、 g.在坐标10,10处绘制一个20x20像素的椭圆:

    ellipse(10,10,20,20);
    
    在读取CSV文件方面,正如我在评论中提到的,该函数将对此有所帮助。参考页面实际上包含了一个如何遍历每一行并提取值的示例

    下面是如何基于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
    

    通过添加标题,您可以做很多有趣的事情,这将允许您通过标签而不是索引来获取值

    如果您只是读取一个值X,并根据不同的参数绘制椭圆,则只需使用一个。 如果您使用这样的编程基础知识,它们很简单,如1,2,3:

  • 声明和初始化变量
  • 使用条件
  • 访问和修改现有变量
  • 你可以把它们想象成一个代码结构,允许你从a数到B。 假设你正在数10步。for回路有3个要求:

  • 具有初始值的数字
  • 条件(知道何时停止)
  • 增量:数字从初始值到最终值的变化有多快
  • 语法大致如下(3个需求之间用
    分隔):

    例如:

    for (int step = 0; step < 10; 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);
    }
    
    intx=30//假设该值易于读取
    对于(int-ellipseCount=0;ellipseCount
    另外,您可以添加几行csv文件吗?(数据是什么样子的)?查看参考资料,可能会有所帮助。首先加载并列出数据,然后访问所需的值,将字符串转换为数字并绘制椭圆。一步一个脚印:)开始工作了,谢谢:)太棒了!如果答案有帮助,请投票和/或勾选答案。谢谢:)
    for (int step = 0; step < 10; step = step+2) {
      println("step " + step);
    }
    
    for (int step = 10; step > 0; step = step-1) {
      println("step " + step);
    }
    
    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);
    }