zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

macOS SwiftUI 教程之 06 绘图实现正弦波,通过调整频率和步进值来更新正弦波视图 (教程含源码)

macos源码教程 实现 通过 更新 视图 调整
2023-09-11 14:18:31 时间

实战需求

要绘制正弦波,请创建一个使用 x 和 y 值绘制线条的形状。这些值必须转换为视图框架内的适当点。标记代表绘制线上的点。

运行效果

在这里插入图片描述

实战代码

import SwiftUI

struct MarkersView: View {

    let xValues: [Double]
    let yValues: [Double]

    var body: some View {
        GeometryReader { geom in
            let xMin = xValues.min() ?? 0.0
            let xMax = xValues.max() ?? 1.0

            let yMin = yValues.min() ?? 0.0
            let yMax = yValues.max() ?? 1.0

            ForEach(0..<yValues.count, id: \.self) { i in
                Circle()
                    .fill(.blue)
                    .frame(width: 8)
                    .position(
                        x: ((xValues[i] - xMin) * (geom.size.width)) / (xMax - xMin),
                        y: geom.size.height - ((yValues[i] - yMin) * (geom.size.height)) / (yMax -