Я пытаюсь построить случайно сгенерированный мной треугольник sh в обработке. Я еще не получил степень бакалавра или математика, поэтому, пожалуйста, будьте осторожны в своем родном языке или уточните, что вы имеете в виду. Предполагается, что треугольник me sh состоит из случайных точек PVector, которые ведут отрезки линии к двум ближайшим точкам, а также замыкают треугольник. Вместо этого я получаю нечто похожее на это: The Triangle Me sh.
Вот код:
Triangles.pde:
import java.util.*;
int popSize = 10;
ArrayList<Triangle> triangles = new ArrayList();
PVector points[] = new PVector[popSize];
void setup(){
size(500, 500);
background(255);
try{
for(int i = 0; i < popSize; i++){
points[i] = new PVector(random(0, width), random(0, height));
}
for(int i = 0; i < popSize; i++){
PVector p1 = points[0], p2 = points[1], p3 = points[2];
for(int j = 0; j < popSize; j++){
if(i != j){
if(dist(points[i].x, points[i].y, points[j].x, points[j].y) < dist(points[i].x, points[i].y, p1.x, p1.y)){
p3 = p2;
p2 = p1;
p1 = points[j];
}
}
}
triangles.add(new Triangle(p1, p2, p3));
}
for(int i = 0; i < triangles.size(); i++){
triangles.get(i).drawTriangle();
}
}
catch(Exception e){
println(e);
}
}
Triangle.pde:
public class Triangle{
public PVector point[] = new PVector[3];
public PVector center;
public Triangle(PVector p1, PVector p2, PVector p3){
point[0] = p1;
point[1] = p2;
point[2] = p3;
}
public void drawTriangle(){
noFill();
stroke(255, 0, 0);
line(point[0].x, point[0].y, point[1].x, point[1].y);
stroke(0);
line(point[1].x, point[1].y, point[2].x, point[2].y);
stroke(255, 0, 0);
line(point[2].x, point[2].y, point[0].x, point[0].y);
}
}
Как вы думаете, что я делаю не так? И есть ли у вас какие-либо предложения, которые могут привести меня в правильном направлении?