Function 生成相邻点的网格,不要使用line()函数(处理)

Function 生成相邻点的网格,不要使用line()函数(处理),function,random,floating-point,processing,point,Function,Random,Floating Point,Processing,Point,我试图生成一个由相邻点(但改变点之间的间距)组成的网格(即许多交叉的水平线和垂直线),而不是使用line()函数 这是我的代码: int垂直数字线=20; int水平数字线=20; int空间=5; 尺寸(400400); 背景(#99ff66); 冲程重量(2); 对于(int i=0;i感谢您改进了您的问题。这比以前更容易回答 你应该养成习惯的第一步是准确地描述你的目标。你已经发布了一张图片,这很好,但是图片中到底发生了什么?你能准确地描述一下图片与代码中发生的事情有什么不同吗?试着用英语写

我试图生成一个由相邻点(但改变点之间的间距)组成的网格(即许多交叉的水平线和垂直线),而不是使用
line()
函数

这是我的代码:

int垂直数字线=20;
int水平数字线=20;
int空间=5;
尺寸(400400);
背景(#99ff66);
冲程重量(2);

对于(int i=0;i感谢您改进了您的问题。这比以前更容易回答

你应该养成习惯的第一步是准确地描述你的目标。你已经发布了一张图片,这很好,但是图片中到底发生了什么?你能准确地描述一下图片与代码中发生的事情有什么不同吗?试着用英语写下一系列步骤,这将创建一个p当你有了这些步骤,开始思考代码就容易多了

我想说的是,这条线看起来好像每个点都有一个随机波动。因此,步骤可能是:

  • 从一端开始画一条线,将笔沿线向下移动一点,画一个点
  • 在你画每个点之前,随机地将笔移动一点点:如果你画的是一条垂直线,请将笔向左或向右移动;如果你画的是一条水平线,请将笔向上或向下移动
  • 重复该过程,以在图片中的间距绘制线条
既然已经完成了这些步骤,就可以开始考虑代码了

好的,我们有两个嵌套的
for
循环。第一个绘制垂直线,第二个绘制水平线。让我们一次关注一条。我将更改变量名称,以便更清晰一点

for (int x=0; x<width; x+=width/verticalNumberLines)
{
  for (int y=0; y<height; y+=space) // j=j+numero variabile
  {
    point(x, y);
  }
}
唯一改变的是这一行:

point(x + random(-2, 2), y);
现在我们在坐标的
x
值中添加一个介于
-2
2
之间的随机值。这将导致垂直线的左右随机波动

您可以对水平线执行相同的操作:

point(x, y + random(-2, 2));
这将生成如下图像:

您可能需要调整圆点的间距,使其看起来完全符合您的要求,但这应该是您的开始。上面更详细地描述问题,然后将其分解为更小的步骤的过程应该可以帮助您解决未来的问题。

/*
/* 
This is my solution, thank you, guys! 
 Program Description: 16. Use the random() function to create some visually interesting grids (note, a grid is not any
 arbitrary pattern, see exercise 14).
 By Laura Enria 20/02/1017
 */

float verticalNumberLines= 10;                                                   // numero delle linee verticali
float horizontalNumberLines= 10;                                                 // numero delle linee orizzontali
float space= random(1, 3); //try random(1 ,5 o 20);                                 // spazio che viene a crearsi tra i punti casuale
float R= random(1, 2);
size(500, 500);                                                                  //dimensione schermo
background(#00001a);                                                             //colore sfondo
stroke(#c6ffb3);                                                                 //colore linee e punti
strokeWeight(R);                                                                 //dimensione linee e punti

for (int i=0; i<width; i+=width/verticalNumberLines)                             //Fin quando i=0 passo al secondo loop
                                                                                //fin quando j=0 e minore(<) di height(altezza) disegno il primo punto in X0 e J0 con i che ha random
{                                                                               // -3e+3 e j lo stesso, poi passo a X0 e J1,J2,J3 ect. tra un punto e l'altro c'è lo spazio ,
  for (int j=0; j<height; j+=space)                                             //il rislutato sono linee di punti poi passo alla variabile i 
  {
    point(i+random(-3, 3), j+random(-3, 3));                                                                 //disegno il punto
  }
}
for (int j=0; j<height; j+=height/horizontalNumberLines)                       //stesso ragionamento
{
  for (int i=0; i<width; i+=space)
  {
    point(i+random(-3, 3), j+random(-3, 3));                                                           //incremento la casualità della i e j
  }
}
这是我的解决方案,谢谢大家! 程序描述:16.使用random()函数创建一些视觉上有趣的网格(注意,网格不是任何 任意模式,请参见练习14)。 作者:劳拉·恩里亚1017年2月20日 */ 浮动垂直线数=10;//垂直线数 float horizontalNumberLines=10;//numero delle linee orizzontali float space=random(1,3);//尝试random(1,5,20);//spazio che viene a crearsi tra i punti casuale 浮动R=随机(1,2); 尺寸(500500);//尺寸schermo 背景(#00001a);//颜色 笔划(#c6ffb3);//彩色线条 冲程重量(R);//尺寸
对于(int i=0;这实际上不是堆栈溢出的工作方式。我们无法真正帮助解决一般的“我该怎么做”类型的问题,而且很难对代码提供一般性的注释。堆栈溢出是为更具体的“我尝试了X,预期了Y,但得到了Z”而设计的键入问题。因此,请尝试将问题缩小到不符合预期的几行代码。您还将许多问题塞进了一篇帖子。将它们分成多个问题,以便我们可以为每个特定问题提供具体答案。推荐阅读:和。好的,现在更清楚了,非常感谢您的帮助你的建议和推荐阅读。我真的不想惹人烦,我很乐意帮助你。但这篇文章仍然不是很清楚。你已经发布了你的目标,你发布了一些代码,但你没有真正提出问题。就像我说的,这个网站不是为一般反馈而设计的。它是为特定的技术问题而设计的。哪一行代码的行为与您预期的不同?谢谢,说真的。这是我第一次,我不知道很多事情。我的基本问题是,我想创建一个类似于第一张图像的网格(橙色和灰色网格).我是说网格本身在点上有那种视觉效果。我试了很多次,但我不明白我在哪里犯了错误,或者我应该在哪里修改代码。你能帮我吗?嗨,凯文,非常感谢你的所有描述,这对我真的很有帮助。“点(x,y+random(-2,2));”是我正在寻找的正确解决方案的一部分,我通过写点(x+随机(-3,3),y+随机(-3,3)),然后更改了垂直数字线=10;水平数字线=10;再次感谢。
/* 
This is my solution, thank you, guys! 
 Program Description: 16. Use the random() function to create some visually interesting grids (note, a grid is not any
 arbitrary pattern, see exercise 14).
 By Laura Enria 20/02/1017
 */

float verticalNumberLines= 10;                                                   // numero delle linee verticali
float horizontalNumberLines= 10;                                                 // numero delle linee orizzontali
float space= random(1, 3); //try random(1 ,5 o 20);                                 // spazio che viene a crearsi tra i punti casuale
float R= random(1, 2);
size(500, 500);                                                                  //dimensione schermo
background(#00001a);                                                             //colore sfondo
stroke(#c6ffb3);                                                                 //colore linee e punti
strokeWeight(R);                                                                 //dimensione linee e punti

for (int i=0; i<width; i+=width/verticalNumberLines)                             //Fin quando i=0 passo al secondo loop
                                                                                //fin quando j=0 e minore(<) di height(altezza) disegno il primo punto in X0 e J0 con i che ha random
{                                                                               // -3e+3 e j lo stesso, poi passo a X0 e J1,J2,J3 ect. tra un punto e l'altro c'è lo spazio ,
  for (int j=0; j<height; j+=space)                                             //il rislutato sono linee di punti poi passo alla variabile i 
  {
    point(i+random(-3, 3), j+random(-3, 3));                                                                 //disegno il punto
  }
}
for (int j=0; j<height; j+=height/horizontalNumberLines)                       //stesso ragionamento
{
  for (int i=0; i<width; i+=space)
  {
    point(i+random(-3, 3), j+random(-3, 3));                                                           //incremento la casualità della i e j
  }
}