1

我正在尝试使用 ScreenKit 框架在 SCNView 中呈现 3D 条形图。

我的渲染代码是,

int height=10,y=0,x=0;
for (int i=0; i<10; i++) {

    SCNBox *box1 = [SCNBox boxWithWidth:4 height:height length:2 chamferRadius:0];
    boxNode1 = [SCNNode nodeWithGeometry:box1];
    boxNode1.position = SCNVector3Make(x, y, 0);
    SCNMaterial *material = [SCNMaterial material];
    material.diffuse.contents  = (NSColor *)[self.colorArray objectAtIndex:i%6];
    material.specular.contents = [NSColor whiteColor];
    material.shininess = 1.0;
    box1.materials = @[material];
    //boxNode1.transform = rot;
    [scene.rootNode addChildNode:boxNode1];
    x+=6;
    height+=10;
    y += 5 ;
}

我可以渲染,但在重新调整视图大小时,图表栏会转到视图的中心。

我需要渲染图表,它覆盖了视图的边距,当重新调整大小时,它必须相应地改变。下面的图片显示了我的问题。


原图:

在此处输入图像描述


两个窗口的拉伸较少的图像:

在此处输入图像描述

谁能帮我解决这个问题。

4

1 回答 1

0

您在原始问题中链接到的图像中的窗口非常拉伸,这使得很难看到发生了什么。当我拍摄那张照片并减少窗户的拉伸时,更容易了解发生了什么。

我认为您看到了一个普遍的调整大小问题。您正在使用弹簧和支柱并在左侧和右侧配置了灵活的边距,或者您正在使用具有固定宽度的居中视图的自动布局。

我假设我在下图中绘制的红色框是这两种情况下场景视图的边界。您可以通过为场景视图提供不同的背景颜色并再次调整其大小来轻松查看是否是这种情况。

我对您的问题的解决方案是更改您的视图在窗口调整大小时调整大小的方式,以更好地满足您的期望。

在此处输入图像描述

于 2013-11-16T12:41:46.170 回答