2013-08-30 105 views
7

Tôi muốn vẽ một số bề mặt 3D bằng ILNumerics. Tôi nhận thấy rằng ILCube không giữ hình dạng bề mặt nếu tôi xoay nó và nó là bởi vì nó cố gắng để phù hợp với khối lập phương trong ILPanel. Nếu tôi sử dụng ILCamera, tuy nhiên, nó sẽ giữ hình dạng nhưng không có khối lập phương xung quanh nó. Dưới đây là một ví dụ,Cách giữ hình dạng trong ILCube

private void ilPanel1_Load(object sender, EventArgs e) 
{ 
    var scene = new ILScene(); 
    ILArray<float> A = ILSpecialData.torus(0.75f, 0.25f); 
    var sf = new ILSurface(A); 
    var pc = new ILPlotCube(); 
    pc.TwoDMode = false; 
    scene.Add(pc); 
    pc.Add(sf); 
    sf.Colormap = Colormaps.Jet; 
    var cb = new ILColorbar(); 
    cb.Location = new PointF(1, .1f); 
    sf.Children.Add(cb); 
    ilPanel1.Scene = scene; 
} 

và kết quả là

enter image description here

và cho ILCamera

private void ilPanel1_Load(object sender, EventArgs e) 
{ 
    var scene = new ILScene(); 
    ILArray<float> A = ILSpecialData.torus(0.75f, 0.25f); 
    var sf = new ILSurface(A); 
    var cam = scene.Camera; 
    cam.Add(sf); 
    sf.Colormap = Colormaps.Jet; 
    var cb = new ILColorbar(); 
    cb.Location = new PointF(1, .1f); 
    sf.Children.Add(cb); 
    ilPanel1.Scene = scene; 
} 

và kết quả là

enter image description here

Có cách nào để làm cho ILCube giữ được hình dạng của bề mặt không? Hoặc thêm một khối lập phương xung quanh bề mặt vào ILCamera? Cảm ơn.

Trả lời

3

Khối lô hiện không hỗ trợ tỷ lệ co trục bằng nhau. Nhưng nó là khá đơn giản để thêm này cho mình.

Ví dụ, nội dung của khối ô vuông (hình xuyến) được kéo dài dọc theo trục Z, bởi vì phần mở rộng của hình xuyến dọc theo Z nhỏ hơn theo hướng X hoặc Y. Do đó, khối âm mưu chọn để kéo dài nội dung để cung cấp chi tiết tốt hơn.

Để hiển thị các hình xuyến mà không bóp méo, đảm bảo phạm vi trục của khối cốt truyện bằng theo mọi hướng:

pc.Limits.Set(new Vector3(-1,-1,-1), new Vector3(1,1,1)); 

Xem ví dụ tương tác ở đây: http://ilnumerics.net/ilcc.php?ilc=i63fb4c

ILNumerics plot cube without distortion

Nhược điểm: bạn sẽ phải điều chỉnh cài đặt Giới hạn mỗi khi nội dung của khối ô được sửa đổi (ví dụ: dữ liệu được thêm/xóa/thay đổi).

+2

Tôi vừa thử kết quả đầu ra EXE trên trang web mà bạn đã liên kết với ... nội dung thú vị! :) – user492238

+0

Cảm ơn câu trả lời. :) – Ehsan