UIBezierPath 贝尔曲线

本文介绍了如何使用iOS开发中的UIView类别方法来绘制实线和虚线。通过UIBezierPath创建路径并设置CAShapeLayer的相关属性,实现了指定颜色、宽度及虚线模式的线条绘制。
画实线
@implementation UIView (Drawing)

-(CAShapeLayer *)drawLineFromPoint:(CGPoint)p1 toPoint:(CGPoint)p2 width:(CGFloat)width color:(UIColor *)color
{
    UIBezierPath *path = [UIBezierPath bezierPath];
    [path moveToPoint:p1];
    [path addLineToPoint:p2];
    
    CAShapeLayer *layer = [CAShapeLayer layer];
    layer.lineWidth = width;
    layer.strokeColor = color.CGColor;
    layer.path = path.CGPath;
    
    [self.layer addSublayer:layer];
    
    return layer;
}


画虚线

- (CAShapeLayer*)dashLineFromPoint:(CGPoint)p1 toPoint:(CGPoint)p2 realLinePoint:(CGFloat)realLinePoint dashLinePoint:(CGFloat)dashLinePoint color:(UIColor*)color lineWidth:(CGFloat)lineWidth
{
    //realLinePoint 单位实线长度  dashLinePoint 单位间隙长度
    CAShapeLayer *layer = [self drawLineFromPoint:p1 toPoint:p2 width:lineWidth color:color];
    layer.lineDashPattern = @[[NSNumber numberWithInteger:realLinePoint],[NSNumber numberWithInteger:dashLinePoint]];

    return layer;
    
}


要在 ECharts 中绘制 S 型曲线(例如 sigmoid 函数),可以通过定义数学函数并生成相应的数据点来实现。ECharts 是一个基于 JavaScript 的可视化库,支持多种图表类型,并且可以灵活地通过自定义函数进行数据处理和图形展示。 以下是一个完整的示例代码,用于在 ECharts 中绘制 sigmoid 曲线: ```html <!DOCTYPE html> <html style="height: 100%"> <head> <meta charset="utf-8"> <title>Sigmoid Curve in ECharts</title> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.4.2/echarts.min.js"></script> </head> <body style="height: 100%; margin: 0"> <div id="container" style="height: 100%"></div> <script> // 定义 sigmoid 函数 function sigmoid(x) { return 1 / (1 + Math.exp(-x)); } // 生成 x 范围为 -10 到 10,步长为 0.1 的数据点 const data = []; for (let x = -10; x <= 10; x += 0.1) { data.push([x, sigmoid(x)]); } // 初始化图表 const chart = echarts.init(document.getElementById('container')); // 配置项 const option = { title: { text: 'Sigmoid Curve' }, tooltip: { trigger: 'axis', formatter: (params) => { return `x: ${params[0].value[0]}<br/>y: ${params[0].value[1].toFixed(4)}`; } }, xAxis: { type: 'value', name: 'x' }, yAxis: { type: 'value', name: 'sigmoid(x)' }, series: [{ type: 'line', data: data, showSymbol: false, lineStyle: { color: '#5470C6' } }] }; // 渲染图表 chart.setOption(option); </script> </body> </html> ``` ### 示例说明: 1. **Sigmoid 函数**:`1 / (1 + Math.exp(-x))` 是标准的 sigmoid 函数公式。 2. **数据生成**:使用 `for` 循环生成一系列 x 值,并计算对应的 y 值,最终形成二维数组作为图表数据。 3. **ECharts 图表配置**: - 使用 `tooltip` 显示坐标信息。 - 设置 `xAxis` 和 `yAxis` 类型为数值轴。 - 使用 `series` 绘制折线图,设置 `showSymbol: false` 可以隐藏数据点标记,使曲线更平滑。 4. **样式优化**:通过 `lineStyle` 设置线条颜色。 将上述代码保存为 `.html` 文件并在浏览器中打开即可看到绘制出的 sigmoid 曲线。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值