gpt4 book ai didi

c# - 如何在 ILCube 中保持形状

转载 作者:太空狗 更新时间:2023-10-29 20:33:58 25 4
gpt4 key购买 nike

我想用 ILNumerics 绘制一些 3d 表面。我注意到,如果我旋转 ILCube,它不会保持表面的形状,这是因为它试图将立方体放入 ILPanel 中。但是,如果我使用 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 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;
}

结果是

enter image description here

和 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;
}

结果是

enter image description here

有没有办法让ILCube保持表面的形状?或者在 ILCamera 的表面周围添加一个立方体?谢谢。

最佳答案

绘制立方体目前不支持等轴纵横比。但是自己添加这个相当简单。

对于您的示例,绘图立方体(环面)的内容沿 Z 轴拉伸(stretch),因为环面沿 Z 方向的延伸小于 X 或 Y 方向。因此,绘图立方体选择拉伸(stretch)内容以提供更好的细节。

为了不失真地显示环面,请确保绘图立方体的轴范围在所有方向上都相等:

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

请在此处查看交互式示例:http://ilnumerics.net/ilcc.php?ilc=i63fb4c

ILNumerics plot cube without distortion

缺点:每次修改立方体的内容(即添加/删除/更改数据)时,您都必须调整限制设置。

关于c# - 如何在 ILCube 中保持形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18525030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com