2012-11-16 7 views
5

Voglio solo mostrare una porzione di una forma disegnata su una tela. La mia linea è essenzialmente questo, e funziona bene:Tela, coordinate negative: non è corretto tracciare percorsi che iniziano nell'area di disegno e continuare?

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

La seconda variabile non sta per essere negativo. Quindi, il mio quesiton è: è una cattiva pratica (o mi sto impostando per errori in fondo alla strada) per disegnare un percorso che inizia dalla tela (con una coordinata negativa) e quindi continua a disegnare sulla tela.

+2

No, isn' t, fintanto che non stai tracciando molte cose dallo schermo, il che sarebbe uno spreco di risorse. – Shmiddty

+1

In caso di dubbio, la maggior parte delle implementazioni (? Tutti?) Ritagliano il rettangolo prima di disegnarlo, quindi il costo è solo il costo di questa clip - non un singolo pixel viene disegnato all'esterno dell'area di disegno -. – GameAlchemist

risposta

0

Nessun problema. Se hai un numero molto grande di oggetti di disegno puoi (come detto GameAlchemist) evitare di disegnare quell'oggetto. Se usi canvas come map per esplorare (rimpicciolisci/in ctx, traduci tutto il contesto) che impedire l'estrazione può costare più di quel costo. E il suo complicato ...

Ho un po 'di scadere con l'oggetto di disegno fuori dalla tela. È possibile avere un problema se si mette il calcolo e altri (nessun disegno) intro funzione di estrazione del personale.

Importante:

-Fare tela pareggio codice funzione chiaro (solo disegnare il codice tela).

-Se l'app non necessita di aggiornamento costante, effettuare la chiamata di aggiornamento solo quando è necessario.

tela

-Clear solo in (0,0, canvas.w, canvas.h)

stile -Utilizzare solo quando ha bisogno (tratto, riempimento, font, ecc)