- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个正在实时更新的简单折线图。某种地震仪。
我在考虑 UIBezierPath
,通过根据输入变量仅在 y 轴上移动一个点,我可以创建一条在时间轴上移动的线。
问题是你必须“推”之前的点来为新的点腾出空间。(所以图表从左到右)
有人能帮忙指点一下吗?
var myBezier = UIBezierPath()
myBezier.moveToPoint(CGPoint(x: 0, y: 0))
myBezier.addLineToPoint(CGPoint(x: 100, y: 0))
myBezier.addLineToPoint(CGPoint(x: 50, y: 100))
myBezier.closePath()
UIColor.blackColor().setStroke()
myBezier.stroke()
最佳答案
你是对的:你需要插入前面的观点。要么划分图形的总宽度,使其变得越来越大但保留所有数据,要么在每次向末尾添加一个新点时删除第一个点。您需要存储这些点的数组并每次都重新创建路径。像这样的东西:
//Given...
let graphWidth: CGFloat = 50
let graphHeight: CGFloat = 20
var values: [CGFloat] = [0, 4, 3, 2, 6]
//Here's how you make your curve...
var myBezier = UIBezierPath()
myBezier.moveToPoint(CGPoint(x: 0, y: values.first!))
for (index, value) in values.enumerated() {
let point = CGPoint(x: CGFloat(index)/CGFloat(values.count) * graphWidth, y: value/values.max()! * graphHeight)
myBezier.addLineToPoint(point)
}
UIColor.blackColor().setStroke()
myBezier.stroke()
//And here's how you'd add a point...
values.removeFirst() //do this if you want to scroll rather than squish
values.append(8)
关于ios - 动画 UIBezier 以获得实时曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38533514/
我正在尝试创建一个正在实时更新的简单折线图。某种地震仪。 我在考虑 UIBezierPath ,通过根据输入变量仅在 y 轴上移动一个点,我可以创建一条在时间轴上移动的线。 问题是你必须“推”之前的点
我正在使用 UIBezierPath arc 便捷方法创建一个 arc。我想要圆弧的末端 - 具体要求请参见附图! roundedRect 版本中使用的 cornerRadius 选项不适用于 arc
我有一个 UIImageView,带有特定的图像。我还有一个形状奇怪的 UIBezierPath。我想将图像剪切成该形状并返回该形状的新图像。 形式为: func getCut(bezier:UIBe
我正在尝试设计一个可缩放的 UIBezier。 这是我的 Swift 代码: @IBDesignable class AnimatedRingView: UIView { override
我想在屏幕上绘制多个字母的动画。我的数据在一个数组中。该数组包含线对象,这些线对象具有动画的开始和结束时间,以及构成线的点。我目前的代码如下: private func animateSentData
我在可缩放的 UIView(pdf 阅读器的绘图层)中绘制贝塞尔曲线。当我放大文档时,UIView 也放大了,但是所有的绘图和线条看起来像素化了很多。有没有办法在没有太多像素化的情况下渲染这些路径?它
我有一个包含 CGPath 的 CAShapeLayer。使用 iOS 的内置动画,我可以使用动画轻松地将这条路径变成另一条路径: CABasicAnimation *morph = [CAB
我试图强制一个动画等待另一个,但没有运气。 UIBezierPath *path = [UIBezierPath bezierPath]; 这就是我想要做的: [path addLineToPoint
编辑:抱歉,我最初并不清楚。我想获得线条或形状的“轮廓”路径。我特别想了解如何使用: context.replacePathWithStrokedPath() 和/或: CGPathRef CGPat
我想使用 CGAffineTransform(rotationAngle:) 在 UIView 的绘制下制作路径动画。我找不到任何方法... 这是我的代码: public override
我是一名优秀的程序员,十分优秀!