2012-11-03 27 views

Trả lời

8

này nên làm việc cho hầu hết các phần cho làm lệch một đối tượng với một ma trận chuyển đổi, đặc biệt là sử dụng glMultMatrix (ma trận)

enter image description here

matrix1[] = { 
1, 0, 0, 0, 
tan(a), 1, 0, 0, 
0, 0, 1, 0, 
0, 0, 0, 1 
}; 

matrix2[] = { 
    1, 0, 0, 0, 
    0, 1, 0, 0, 
    tan(a), 0, 1, 0, 
    0, 0, 0, 1 
}; 

matrix3[] = { 
    1, tan(a), 0, 0, 
    0, 1, 0, 0, 
    0, 0, 1, 0, 
    0, 0, 0, 1 
}; 

matrix4[] = { 
    1, 0, 0, 0, 
    0, 1, 0, 0, 
    0, tan(a), 1, 0, 
    0, 0, 0, 1 
}; 

matrix5[] = { 
    1, 0, tan(a), 0, 
    0, 1, 0, 0, 
    0, 0, 1, 0, 
    0, 0, 0, 1 
}; 

matrix6[] = { 
    1, 0, 0, 0, 
    0, 1, tan(a), 0, 
    0, 0, 1, 0, 
    0, 0, 0, 1 
}; 
+0

specifi cs: 1) xiên theo x, tương ứng với trục y, 2) xiên theo x, tương ứng với trục z, 3) nghiêng dọc theo y, tương ứng với trục x, 4) nghiêng dọc theo y, liên quan đến trục z, 5) nghiêng theo z, tương ứng với trục x, 6) nghiêng dọc theo z tương ứng với trục y. Bạn có thể thấy đây là vị trí của 'tan (a)' trong ma trận quá, ví dụ 1) ** khi bạn nhân một vector với ma trận, thành phần y của kết quả bị ảnh hưởng bởi 'tan (a)' - bị ảnh hưởng bởi số lượng thành phần x của vectơ. Một cách khác để suy nghĩ về nó là khi x lớn hơn, có nhiều sai lệch hơn trong kết quả y. ** –