Sie müssen darüber nachdenken, wo Ihre Punkte in Bezug auf Ihre translate()
und rotate()
Anrufe sind.
Zuerst übersetzen Sie, so dass der Ursprung in der Mitte des Bildschirms statt in der oberen linken Ecke ist. Daher müssen alle Punkte relativ zur Mitte und nicht zur oberen linken Ecke sein.
Um dies zu debuggen, würde ich durch das Loswerden der for
Schleife zu starten und einfach einen einzigen Punkt oder eine einzelne Linie zu zeichnen:
void setup() {
size(300, 300);
}
void draw() {
translate(width/2, height/2);
if (mousePressed) {
line(width/2 -mouseX, height/2 -mouseY,
width/2 -pmouseX, height/2 -pmouseY);
}
}
Sie werden sehen, dass diese ausgeschaltet ist, was bedeutet, dass Ihre Logik für die Berechnung der Position der Linie ist falsch. Sie können damit spielen, um ein Muster zu bemerken, und Sie können über einige Beispielpunkte nachdenken.
Der Mittelpunkt ist 150,150
. Also, wenn die Maus bei 160,160
ist, welche Position sollten wir den Punkt zeichnen? Denken Sie daran, es ist relativ zu 150,150
, so 160,160
wird 10,10
.
Mit anderen Worten, wir subtrahieren das Zentrum von der Maus, um herauszufinden, wo der Punkt zu zeichnen ist.
Aber Ihr Code subtrahiert die Maus von der Mitte, die rückwärts ist.
Wenn Sie ähnliche Probleme in der Zukunft haben, empfehle ich dringend, den Prozess des Denkens von Beispielpunkten und herauszufinden, wo sie gehen sollten. Millimeterpapier ist dein bester Freund mit solchen Sachen.
Hinweis: Ich erkenne, dass Sie Ihren Code von meiner Antwort auf your other question basieren, also das ist mein schlechtes. Ich habe die Bestellung falsch verstanden, aber es war nicht wichtig in Ihrer anderen Frage, weil Sie 4 Mal übersetzt haben (so wurde der Mauszeiger trotzdem abgedeckt).
Nur ein Kopf hoch, es ist ein bisschen unhöflich, Fragen zu löschen, nachdem die Leute sich die Zeit nehmen, sie zu beantworten. Macht es weniger wahrscheinlich, dass Menschen Ihnen in Zukunft helfen werden. :( –
Es war ein blöder Fehler, für den ein kurzer Kommentar ausreichend gewesen wäre. Ich versuchte jetzt zu sehen, ob ich es wiederherstellen könnte, aber es ist nicht mehr verfügbar. Ich habe viele Ihrer anderen Beiträge auch sehr nützlich gefunden. – rnso