sim  
                
               
                 
              
                  
                    January 27, 2019,  9:20pm
                   
                   
              1 
               
             
            
              I’m trying to create a triangle which will be its smallest size at the top of the canvas and largest at the bottom.
so far I have the code to just simply create a triangle that follows my mouse cursor but I don’t know how to change it’s size:
void setup()
{ 
   size (500,500);
}
void draw()
{
   drawTriangle();
   //moveObject();
} 
void drawTriangle()
{
  background(0);
  fill(255,0,0);
  triangle(mouseX, (mouseY-150), (mouseX-125), mouseY+150, mouseX+125, mouseY+150);
}
 
             
            
               
               
              1 Like 
            
            
           
          
            
            
              There’s many ways you can do this 
One method (that will probably use the least amount of code) is using the scale  and map  function.
you could just use mouseY as the input for scale and it will do exactly what you want. If you’re not pleased with the size of it, you can map the mouseY values to something smaller.
https://processing.org/reference/scale_.html 
https://processing.org/reference/map_.html 
And also when posting on the forum you can format your code by selecting it and pressing </> 
             
            
               
               
              2 Likes 
            
            
           
          
            
            
              
 sim:
 
void drawTriangle()
{
  background(0);
  fill(255,0,0);
  triangle(mouseX, (mouseY-150), (mouseX-125), mouseY+150, mouseX+125, mouseY+150);
}
 
 
 
There are some ways that you could make this cleaner. One is to pass an argument to drawTriangle, giving its size only (and not worrying about its position):
void drawTriangle(float size)
{
  triangle(0, -size, -size, size, size, size);
}
 
The size changes when you pass it a variable. That could be mouseX, or anything you want:
drawTriangle(mouseY);
 
However, it always draws at 0,0. Next, in draw(), position the triangle on the mouse using translate():
background(0);
fill(255,0,0);
translate(mouseX, mouseY);
drawTriangle(mouseY);
 
So, putting it all together:
void draw() {
  background(0);
  fill(255, 0, 0);
  translate(mouseX, mouseY);
  drawTriangle(mouseY);
}
void drawTriangle(float size) {
  triangle(0, -size, -size, size, size, size);
}
 
             
            
               
               
              2 Likes