2010-09-03 41 views
9

Tôi đang cố gắng tự dạy mình về đồ họa 3D, nhưng tôi đang gặp khó khăn khi hình dung các vectơ 3D liên quan.Đồ họa 3D: phần mềm để hình dung vectơ 3D?

Có phần mềm tốt nào tôi có thể sử dụng để trực quan hóa vectơ 3D không?

Ví dụ: ngay bây giờ tôi đang tìm hiểu về các biến đổi của máy ảnh và sẽ thật tuyệt nếu tôi có thể dễ dàng vẽ các vectơ phải/lên/xem/mắt.

Tôi đã thử Grapher.app và gnuplot, nhưng rất khó để nhập điểm vào Grapher.app và gnuplot dường như không thể khóa tỷ lệ khung hình.

Trả lời

8

Visual Python là thư viện siêu dễ dàng để hiển thị 3D.

Ví dụ, để hiển thị một hình cầu và mũi tên:

import time, math, visual 

ball = visual.sphere(pos=(0,2,0), radius=1, color=visual.color.red) 
vect = visual.arrow(pos=(2,0,0), axis=(2 ,2,-2)) 

visual.scene.forward = (.1, -.3, -1) # controls the camera view angle 

alt text

Cửa sổ này bây giờ cũng có tất cả các tương tác chuột bình thường, chẳng hạn như phóng to và máy ảnh (ví dụ: góc nhìn) quay.

VPython cũng dễ tạo hiệu ứng động. Ví dụ: sau đây sẽ xoay mũi tên:

da = 2*math.pi/100 
for timestep in range(100): 
    angle = timestep*da 
    vect.axis = (2+2*math.sin(angle), 2*math.cos(angle), -2) 
    time.sleep(.1) 
+0

Tuyệt vời - trông rất đẹp. Cảm ơn rất nhiều. –

+0

Nếu tôi có nhiều vấn đề hơn, tôi sẽ mở các câu hỏi mới cho họ ... Nhưng chỉ cần chạy chính xác những gì bạn đã có, tôi không nhận được bất kỳ loại tương tác chuột nào. Có một số nước sốt bí mật tôi đang mất tích? –

+0

Tôi đang sử dụng VPython từ Ubuntu Linux, và có nút chuột giữa thu phóng và nút chuột phải quay (và tôi không làm gì đặc biệt để có được điều này). Bạn nói rằng bạn không nhận được điều này? Bạn có thể muốn thử đặt: visual.scene.autoscale = 0, visual.scene.userzoom = 1 và visual.scene.userspin = 1 nhưng tôi cho rằng mặc định là cho phép tương tác nên điều này không cần thiết. – tom10

2

Tôi không biết liệu điều này có dễ hơn Grapher.app hoặc gnuplot hay không, nhưng bạn có thể viết chương trình đồ họa 3D của riêng mình chỉ vẽ các vectơ.

Here's an example in OpenGL vẽ các vectơ trục X, Y và Z.

Cập nhật:Here's a Java applet đặc biệt tập trung vào việc giúp bạn hình dung vectơ trong chuyển đổi máy ảnh. Lưu ý các hướng dẫn cài đặt: bạn phải cài đặt Java 3D.

Mô tả: Perspective Máy ảnh thông số Applet nhằm mục đích để làm quen sinh viên với các thông số khác nhau liên kết với một tổng hợp, camera quan điểm-chiếu. Người dùng có thể điều chỉnh bất kỳ thông số nào sau đây: : chiều rộng trường nhìn, chiều cao trường xem, gần cắt khoảng cách máy bay, mặt cắt cắt xa khoảng cách, lên vectơ và xem vector. Sự thất vọng xem được hiển thị trong cửa sổ , cho phép sinh viên hiểu cách các thông số liên quan với hình dạng của sự thất vọng xem.

Cùng một trang web có many components, such as axes, bạn có thể sử dụng để thiết lập một applet đơn giản chỉ hiển thị các vectơ bạn muốn.

+0

Hhmm ... Tôi đã không xem xét (tôi đang xử lý đồ họa 3D không tương tác), nhưng đó không phải là ý tưởng tồi. Cảm ơn. –

+0

@Jay, bạn đang nói chuyện với ai? – LarsH

+0

@David Wolever, nếu bạn tạo một ứng dụng và nguồn mở nó, tôi chắc chắn nó sẽ hữu ích cho những người khác. –