Как сохранить форму в ILCube

Я хочу построить несколько трехмерных поверхностей с помощью ILNumerics. Я заметил, что 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;
}

и результат

и для 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;
}

и результат

Есть ли способ заставить ILCube сохранить форму поверхности? Или добавить куб вокруг поверхности в ILCamera? Благодарю.

1 ответ

Решение

Кубы графика в настоящее время не поддерживают равные пропорции оси. Но это довольно просто, чтобы добавить это самостоятельно.

Для вашего примера содержимое куба графика (тора) растягивается вдоль оси Z, потому что протяженность тора вдоль Z меньше, чем в направлении X или Y. Следовательно, куб сюжета предпочитает растягивать содержимое, чтобы дать более детальную информацию.

Чтобы показать тор без искажений, убедитесь, что диапазон осей куба построения во всех направлениях равен:

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

Смотрите интерактивный пример здесь: http://ilnumerics.net/ilcc.php?ilc=i63fb4c

ILNumerics сюжет куб без искажений

Недостаток: вам придется настраивать параметр Limits каждый раз, когда изменяется содержимое куба графика (т. Е. Данные добавляются / удаляются / изменяются).

Другие вопросы по тегам