Bella domanda! C'è una risposta non troppo ovvia, ma è facile da calcolare:
Chiamiamo l'asse di riga "r" e l'asse di colonna "c", e consideriamo la prima immagine, dove l'estensione lungo l'asse r è 5 e l'estensione lungo l'asse c è 3.
L'incremento dell'unità lungo l'asse r, relativo al piano di disegno, è all'angolo +30 = (cos 30 °, sin 30 °) = (sqrt (3)/2 , 0,5) e l'incremento dell'unità lungo l'asse c è a -30 = (cos 30 °, -sin 30 °) = (sqrt (3)/2, -0,5).
È necessario considerare le due diagonali del rettangolo isometrico. Nella prima immagine, quelle diagonali sono D1 = [+ 5 * U lungo l'asse r e + 3 * U lungo l'asse c] e D2 = [+ 5 * U lungo l'asse r e -3 * U lungo l'asse c ], dove U è la lunghezza della piastrella nel piano isometrico. Quando viene trasformato nel piano di disegno, diventa D1 = ((5 + 3) * sqrt (3)/2 * U, (5-3)/2 * U) = (4 * sqrt (3) * U, 1 * U) e D2 = ((5-3) * sqrt (3)/2 * U, (5 + 3)/2 * U) = (sqrt (3) * U, 4 * U). La larghezza e l'altezza dello schermo, quindi, sono il massimo delle due estensioni = 4 * sqrt (3) * U, 4 * U.
Questo può essere generalizzato: se non ci sono N righe e colonne Nc e la lunghezza della tessera è U, l'estensione delle diagonali del rettangolo nel piano del disegno sono D1 = ((Nr + Nc) * sqrt (3)/2 * U, (Nr-Nc)/2 * U) e D2 = ((Nr-Nc) * sqrt (3)/2 * U, (Nr + Nc)/2 * U) e la larghezza dello schermo e l'altezza, quindi, sono:
W = U*(Nr+Nc)*sqrt(3)/2
H = U*(Nr+Nc)/2
fonte
2011-01-06 14:46:38
proiezione isometrica non è una rotazione. –
Ops, mi dispiace, ma questo non cambia la soluzione davvero. Piuttosto che usare la matrice di rotazione, può utilizzare la matrice di proiezione, quindi eseguire lo stesso calcolo. – Rafid
Blimey. Questo è difficile. Penso che il mio angolo theta sia di 45 gradi ma non capisco le formule di matrice scritte nell'articolo di Wikipedia. Mi sento abbastanza stupido (il mio background non è matematica o informatica!). – Garry