PDA

View Full Version : resizeGL



inginfo
29-01-2004, 03:05
Chao moi nguoi, minh moi buoc chan vao OpenGL cung khong duoc lau lam, dang hoc cach lam game, va co mot cau hoi xin moi nguoi chi giup gium.

Do la khi minh chinh cua so lon nho, thi hinh trong cua so cung bi zoom theo, minh phai viet them code cho no resize lai moi khi chinh sua cua so graphic. Minh co lam thu vai cach nhung ... khong duoc, co ai co goi y gi giup minh khong? Cam on truoc nhe!

Mach2
29-01-2004, 10:48
Hic, resize cửa sổ thì hình cũng phải zoom theo chứ? Bình thường nếu ko cài đặt code resize cho OGL thì scene nó mới giữ nguyên mờ. Chẳng hỉu ý bạn mún gì cả. Bạn "mô tả" lại giúp mình được ko?

inginfo
30-01-2004, 07:01
..Cũng không biết giải thích làm sao cho nó rõ ràng nữa .. mm .. Vầy đi, mình sẽ mô tả cho bạn cái mình đang làm .. Ví dụ như mình đang vẽ một cái cây, với tọa độ (x,y) , cửa sổ virtual được giới hạn bởi (xmin, ymin) (xmax, ymax). Từ đó mình mới chuyển nó qua thành tọa độ (i,j) để hiện ra cửa sổ ngoài màn hình qua cái viewport. Rồi, bây giờ khi cái hình đã được hiển thị ngoài màn hình, mình kéo cái cửa sổ cho nó lớn ra, hoặc dài ra, thì hình cái cây cũng bị mập ra hay dài ra theo luôn. Mình thì không muốn như vậy, cho nên mới tìm cách để resize lại. Tức là mỗi lần mình phải tính lại, dựa trên tỉ lệ của cửa sổ cũ và cửa sổ mới, tìm xmin, xmax .. mới trong virtual rồi chuyển qua imin imax.. cho nó hiển thị đúng kích thước của cái cây ra màn hình. Cửa sổ lớn ra thì mình có thể thấy được những gì xung quanh cái cây (trời mây nước chẳng hạn) nhưng không làm thay đổi kích thước của cây.

Hổng biết nó có được rõ ràng hơn chút nào không nữa :)

Mach2
30-01-2004, 07:55
thế thì bạn khỏi cần resize lèm gì cho mất công :D chọn glviewport to to một tí, render bự hơn cửa sổ hiện tại. Khi nào mở rộng thêm cửa sổ thì nó mở rộng thêm thôi. Bạn viết bằng giề? Tôi viết thử cái ví dụ cho bạn bằng Delphi. Canh kheo khéo thì okie thui.

inginfo
30-01-2004, 10:54
:) thì ..chắc cách mà mình muốn làm giống như bạn nói, phải chọn glviewport sao cho thích hợp, nhưng muốn như vậy thì mình phải tìm ra i,j mới để cho cái viewport này..
à mà code bạn gởi mình không mở được :(

Mach2
30-01-2004, 12:50
huhu, mình mới down thử, được mờ...

inginfo
31-01-2004, 20:15
Cám ơn Mach2 nhiều, mặc dù vẫn chưa hiểu được code của bạn nhưng mà mình đã tìm ra được nguyên nhân rồi. Nói bạn nghe chơi, cái nguyên nhân rất chi là vô duyên, trong tính toán cửa sổ mới cửa sổ cũ, có một cái biến mà mình dùng int, trong khi nó là double .. Chỉ như vậy thôi mà nó làm tùm lum cả lên :) cũng may cuối cùng tìm ra được . Cám ơn Mach2 lần nữa hén, lần sau có gì ... hỏi tiếp :D Chúc mọi người vui vẻ..