2012-11-16 7 views
5

Ich möchte nur einen Teil einer auf einer Leinwand gezeichneten Form zeigen. Meine Linie ist im Wesentlichen das, und es funktioniert gut:Leinwand, negative Koordinaten: Ist es schlecht, Pfade zu zeichnen, die von der Leinwand ausgehen, und weitermachen?

ctx.fillRect(xPosition, rectHeight - offsetV , rectWidth, rectHeight); 

Die zweite Variable es wird negativ sein. Meine Frage ist also: Ist es eine schlechte Übung (oder setze ich mich selbst auf Fehler auf der Straße), um einen Pfad zu zeichnen, der mit einer negativen Koordinate von der Zeichenfläche startet und dann weiter auf die Zeichenfläche zeichnet?

+2

Nein, es isn‘ t, solange Sie nicht viele Dinge außerhalb des Bildschirms zeichnen, was eine große Verschwendung von Ressourcen wäre. – Shmiddty

+1

Falls Sie sich wundern, werden die meisten Implementierungen (? Alle?) Den Rect vor dem Zeichnen abschneiden, so dass die Kosten nur für diesen Clip kosten - nicht ein einzelnes Pixel wird außerhalb des Canvas gezeichnet. – GameAlchemist

Antwort

0

Kein Problem. Wenn Sie eine sehr große Anzahl von Zeichnungsobjekten haben, können Sie (wie GameAlchemist gesagt hat) das Zeichnen dieses Objekts verhindern. Wenn Sie eine leinwandähnliche Karte zum Erforschen benutzen (Verkleinern/in ctx, Gesamtzusammenhang übersetzen), kann das verhindern mehr Kosten verursachen. Und es ist kompliziert ...

Ich habe einige mit dem Zeichnen des Gegenstandes aus der Leinwand ablaufen. Sie können ein Problem haben, wenn Sie Berechnungen und andere (keine Zeichen) Mitarbeiter intro zeichnen.

Wichtig:

-Stellen Leinwand Zeichenfunktion Code klar (nur Leinwand Code ziehen).

-Ist Ihre App keine Notwendigkeit für const update machen Update-Aufruf nur, wenn es benötigt wird.

-Clear Leinwand nur in (0,0, canvas.w, canvas.h)

-Use Stil nur, wenn es braucht (Schlaganfall, füllen, Schriftart etc.)