Ganz einfach: Erstelle ein gleichseitiges n-Eck, und setze dann n=3
Nein, im Ernst: Es ist so. Die Eckpunkte des Dreiecks liegen auf einem Kreis. Und zwar bei 0°, 120° und 240°. Schnell aus dem Kopf (d.h. ungetestet) hingeschrieben könnte man sowas machen wie
private static float cornerX(double angleDeg, double distance) {
return (float)Math.cos(Math.toRadians(angleDeg)) * distance;
}
private static float cornerY(double angleDeg, double distance) {
return (float)Math.sin(Math.toRadians(angleDeg)) * distance;
}
double distance = 10.0;
float vertices[] = {
cornerX( 0, distance), cornerY( 0, distance), 0.0f,
cornerX(120, distance), cornerY(120, distance), 0.0f,
cornerX(240, distance), cornerY(240, distance), 0.0f,
};
Das könnte man natürlich beliebig verbessern und verallgemeinern, um dann tasächlich so eine Funktion zu haben wie
private static float[] createNgonCorners(
int n, double distance, double rotationAngle) { ... }