Function 用点构造三角形函数

Function 用点构造三角形函数,function,processing,trigonometry,point,Function,Processing,Trigonometry,Point,我正在用编程语言“Processing”编写自己的函数,仅使用point()绘制三角形。 这是我的代码: void setup() { 尺寸(400400); 背景(#99c2ff); noLoop(); } 虚空三角形(整数x1、整数y1、整数x2、整数y2、整数x3、整数y3) { int x=x1; 积分差y=abs(y1-y2);/y1=380;y2=50;(380-50)=330 内差x=abs(x2-x1);//x2=300;x1=30;(300-30)=270 int smallS

我正在用编程语言“Processing”编写自己的函数,仅使用point()绘制三角形。 这是我的代码:

void setup()
{
尺寸(400400);
背景(#99c2ff);
noLoop();
}
虚空三角形(整数x1、整数y1、整数x2、整数y2、整数x3、整数y3)
{
int x=x1;
积分差y=abs(y1-y2);/y1=380;y2=50;(380-50)=330
内差x=abs(x2-x1);//x2=300;x1=30;(300-30)=270
int smallStep=differenceY/differenceX;//330-270=60
int-stepcount=0;

如果(x1你需要学习的最重要的技能是你的程序

您已经添加了一个
println(“test1”);
行,这是一个很好的开始。但是您需要更进一步,打印出每个变量的值,这样您就可以更好地理解代码在做什么

首先,请注意您的
for
循环并没有以
{
花括号结束:

for (int j=y1; j<=y2; j++)
    point(i, j);
    println("test1");
还请注意,我添加了另一个
println()
语句来计算
I
j
的值在这个循环中。但是如果您运行这个程序,您会发现这个循环从未运行过

要了解发生这种情况的原因,可以在内部循环之前添加更多的
println()
语句:

for (int i=x1; i<=x2; i++){
  println("i: " + i);
  println("y1: " + y1);
  println("y2: " + y2);
  for (int j=y1; j<=y2; j++){
    println(i + ", " + j);
    point(i, j);
    println("test1");
  }
} 

for(int i=x1;i我在最后找到了自己的解决方案

void setup()
{
尺寸(400400);
背景(#99c2ff);
noLoop();
}
虚空三角形(整数x1、整数y1、整数x2、整数y2、整数x3、整数y3)
{
糜棱线(x1,y1,x2,y2);
糜棱线(x2,y2,x3,y3);
糜棱线(x3,y3,x1,y1);
}
无效myLine(浮点数x1、浮点数y1、浮点数x2、浮点数y2)
{
浮点数dx=x2-x1;
浮动dy=y2-y1;
如果(dx==0){

for(float i=min(y1,y2);我真的不理解你的问题。那条
if
语句没有主体,所以它不会运行任何代码。@KevinWorkman你是对的。但即使我删除了'if(smallStep%stepcount==0);'函数也应该画一条斜线。“println(“test1”);”也可以运行,所以我不明白为什么点();它不起作用。非常感谢,我已经很好地理解了您的解释和说明,我确实不知道如何“调试”,谢谢您的链接,我将阅读它。我修复了代码,甚至尝试了((x1@MirielLind想一想你的
for
循环到底在检查什么。如果你以相反的顺序给它输入数字会发生什么?这就是你正在做的。如果你想从
500
的x位置到
100
划一条线,你想发生什么?
for (int i=x1; i<=x2; i++){
  println("i: " + i);
  println("y1: " + y1);
  println("y2: " + y2);
  for (int j=y1; j<=y2; j++){
    println(i + ", " + j);
    point(i, j);
    println("test1");
  }
}