用途:在 SwiftUI 中使用 Swift Charts 实现三维数据可视化,主要包括从函数或数据点渲染三维曲面,并控制观察角度与外观。
主要能力:
- Chart3D 容器承载三维图表内容,SurfacePlot 按 x、y 与 z 从函数生成曲面,例如 SurfacePlot(x: "X", y: "Y", z: "Z") { x, y in sin(x) * cos(y) }。
- Chart3DPose 控制视角,提供预设 .default、.front、.back、.top、.bottom、.left、.right,也可用 Chart3DPose(azimuth: .degrees(45), inclination: .degrees(30)) 自定义。
- 通过 .chart3DPose($pose) 绑定实现拖动旋转的交互。
- 曲面样式支持 .wireframe、.solid、.solidWithEdges,并可用 foregroundStyle 搭配 linearGradient 等渐变着色。
- 坐标轴可设置标签与范围,如 chartXAxisLabel、chartYAxisLabel、chartZAxisLabel 以及 chartXScale、chartYScale。
- 可从数据点构建,示例定义 Identifiable 的 DataPoint3D(x、y、z 与 id),在 Chart3D(dataPoints) 中使用三维标记类型。
- visionOS 体积窗口:在 WindowGroup 中使用 Chart3D 并配合 .windowStyle(.volumetric) 与 .defaultSize(width: 0.5, height: 0.5, depth: 0.5, in: .meters),把图表渲染为体积对象。
使用方式:引入 SwiftUI 与 Charts,用 Chart3D 包裹 SurfacePlot 或其他三维标记,按需设置姿态、样式与坐标轴。示例代码展示了基础曲面、自定义视角、交互旋转、曲面样式、坐标轴定制、数据点来源与 visionOS 窗口等写法。
适用场景:需要在 Apple 平台(含 visionOS)以三维形式展示曲面或三维数据的界面。
限制:资料未说明具体系统版本要求、兼容平台范围与可用三维标记类型的完整列表;除上述示例外,其他细节暂未提供。