Cách tạo ma trận 4x4 trong Python

Nếu bạn muốn sử dụng chuyển đổi này trong RenderMan, hãy nhớ rằng máy ảnh RenderMan đang nhìn theo hướng z dương trong khi máy ảnh OpenGL đang nhìn theo hướng tiêu cực

quan điểm [fovy, khía cạnh, gần, xa]

Tương tự, phương thức này trả về một phép biến đổi phối cảnh, điểm khác biệt duy nhất là ý nghĩa của các tham số đầu vào. Phương thức này tương đương với lệnh OpenGL gluPerspective[] . — Đây là một phương thức tĩnh.

chính tả [trái, phải, dưới, trên, gần, xa]

Trả về ma trận đại diện cho phép biến đổi chính tả. Phương thức này tương đương với lệnh OpenGL glOrtho[] . — Đây là một phương thức tĩnh.

lookAt[pos, target, up=[0, 0, 1]]

Trả về một phép biến đổi di chuyển hệ tọa độ đến vị trí vị trí và xoay nó sao cho trục z hướng vào mục tiêu điểm. Trục y hướng càng sát càng tốt vào cùng hướng với hướng lên. Tất cả ba tham số phải là một chuỗi 3

Bạn có thể sử dụng chuyển đổi này để định vị các đối tượng trong cảnh phải được định hướng tới một điểm cụ thể. Hoặc bạn có thể sử dụng nó để định vị camera trong thế giới ảo. Trong trường hợp này, bạn phải thực hiện nghịch đảo của phép biến đổi này dưới dạng phép biến đổi chế độ xem [để chuyển đổi tọa độ không gian thế giới thành tọa độ không gian camera]

Đây là một phương pháp tĩnh

chỉnh hình []

Trả về một ma trận với các vectơ cơ sở trực giao. Trục x, y và z được tạo trực giao. Cột và hàng thứ tư không bị ảnh hưởng

Trong thế giới lập trình, ma trận được biểu diễn dưới dạng mảng 2 chiều được sử dụng để biểu diễn dữ liệu theo hàng và cột. Chúng được sử dụng trong các hoạt động toán học và thống kê khác nhau và chúng giữ nguyên hình dạng của chúng. Ma trận có số hàng và số cột bằng nhau được gọi là ma trận vuông

Để tạo ma trận trong Python, chúng ta có thể sử dụng mảng hoặc danh sách numpy. Chúng ta sẽ thảo luận về cách tạo ma trận trong Python trong bài viết này

Sử dụng danh sách để tạo ma trận trong Python

Một danh sách cũng lưu trữ một tập hợp các phần tử tại các vị trí cụ thể. Một danh sách có thể lưu trữ các phần tử thuộc các loại khác nhau trong một danh sách và các phép toán không thể được áp dụng trực tiếp vào danh sách

Chúng ta có thể sử dụng nó để tạo ma trận trong Python

Sử dụng danh sách lồng nhau để tạo ma trận

Danh sách lồng nhau là danh sách trong danh sách và có thể được sử dụng để tạo ma trận trong Python

Một ví dụ rất đơn giản được hiển thị dưới đây

1

2

3

4

5

 

m = [[4,1,2],[7,5,3],[9,6,9]]

cho i trong m.

    in[i]    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 4 ,   1 ,   2 ]

[ 7 ,   5 ,   3 ]

[ 9 ,   6 ,   9 ]    

 

Trong ví dụ trên, chúng tôi đã tạo một danh sách lồng nhau đơn giản đại diện cho một ma trận

Lưu ý rằng chúng tôi không in trực tiếp danh sách. Điều này được thực hiện bởi vì điều đó sẽ in danh sách trong một dòng. Đó là lý do tại sao chúng tôi lặp qua từng hàng riêng lẻ. Chúng ta cũng có thể làm điều này rõ ràng hơn với hàm join[]

Xem mã dưới đây

1

2

3

4

5

 

m = [[4,1,2],[7,5,3],[9,6,9]]

cho i trong m.

    in[' '. tham gia[str[i]]]    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 4 ,   1 ,   2 ]

[ 7 ,   5 ,   3 ]

[ 9 ,   6 ,   9 ]    

 

Sự khác biệt trong việc sử dụng phương thức này để in ma trận là nó nối các phần tử của một hàng thành một chuỗi trước khi in nó.

đọc thêm

Khởi tạo ma trận trong Python

Đọc thêm →

In ma trận bằng Python

Đọc thêm →

Sử dụng vòng lặp for để tạo ma trận

Chúng ta có thể sử dụng vòng lặp for để tạo ma trận trong Python bằng cách sử dụng danh sách trong Python. Nếu chúng ta có một danh sách duy nhất thì chúng ta có thể lặp lại nó với số lần cần thiết trong danh sách và nó sẽ thay đổi thành một danh sách lồng nhau hoạt động như một ma trận

Ví dụ,

1

2

3

4

5

 

m = [[4,8,9] for i in range[3]]

cho i trong m.

    in[' '. tham gia[str[i]]]    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 4 ,   8 ,   9 ]

[ 4 ,   8 ,   9 ]

[ 4 ,   8 ,   9 ]    

 

Phương pháp này lấy một danh sách duy nhất và thay đổi nó thành một ma trận có hình dạng được yêu cầu

Có một cách khác để sử dụng vòng lặp for để tạo ma trận trong Python

Ví dụ,

1

2

3

4

5

6

7

8

9

10

11

 

lst = []

m = []

cho i trong phạm vi[0,3]:

    cho j trong phạm vi[0,3]:

        ls. chắp thêm[0]      

Chủ Đề