当前位置: 首页 > 面试题库 >

用UIBezierPath画一条线

关飞翔
2023-03-14
问题内容

第一次使用BezierPaths,想知道实际上应该如何实现此功能。当前,贝塞尔曲线路径在图像的框架内移动,与在屏幕上绘制相反。

有更好的方法吗?

func drawLineFromPoint(start : CGPoint, toPoint end:CGPoint, ofColor lineColor: UIColor, inView view:UIView) {

    var maxWidth = abs(start.x - end.x)
    var maxHeight = abs(start.y - end.y)

    var contextSize : CGSize!
    if maxWidth == 0 {
        contextSize = CGSize(width: 1, height: maxHeight)
    }else {
        contextSize = CGSize(width: maxWidth, height: 1)
    }

    //design the path
    UIGraphicsBeginImageContextWithOptions(contextSize, false, 0)
    var path = UIBezierPath()
    path.lineWidth = 1.0
    lineColor.set()

    //draw the path and make visible
    path.moveToPoint(start)
    path.addLineToPoint(end)
    path.stroke()

    //create image from path and add to subview
    var image = UIGraphicsGetImageFromCurrentImageContext()
    var imageView = UIImageView(image: image)
    view.addSubview(imageView)
    UIGraphicsEndImageContext()
}

问题答案:

最终这样做:

func drawLineFromPoint(start : CGPoint, toPoint end:CGPoint, ofColor lineColor: UIColor, inView view:UIView) {

    //design the path
    var path = UIBezierPath()
    path.moveToPoint(start)
    path.addLineToPoint(end)

    //design path in layer
    var shapeLayer = CAShapeLayer()
    shapeLayer.path = path.CGPath
    shapeLayer.strokeColor = lineColor.CGColor
    shapeLayer.lineWidth = 1.0

    view.layer.addSublayer(shapeLayer)
}


 类似资料:
  • 问题内容: 我找不到用Python库画一条任意线的方法。它允许绘制水平线和垂直线(与和,例如),但我没有看到如何通过两个给定的点划一条线和。有办法吗?有没有简单的方法? 问题答案: 从matplotlib 3.3开始,您可以使用进行操作。

  • UIBezierPath+Symbol 是 UIBezierPath 类的扩展,是它的一个分类。

  • 我画了一条基于滑块的角度线。 我试图使线的末端Y坐标为某个数字(比如300),即使它是一个角度。 有什么办法吗?以下是我目前的工作: }

  • 问题内容: 我正在尝试使用2D 绘制一条线,但是该线出现在所有其他组件上,从而使它们不可见。我该如何解决这个问题? 这是代码: 问题答案: 更多提示 在EDT上创建GUI。有关更多详细信息,请参见Swing中的并发。 使用@nIcEcOw建议的,而不是覆盖。再次,首先调用该方法。 不扩展框架,仅使用一个实例。使用来根据组件所需的空间设置尺寸。

  • 问题内容: http://marakana.com/tutorials/android/2d-graphics-example.html 我在下面使用这个例子。但是,当我在屏幕上移动手指的速度太快时,线条会变成单个点。 我不确定是否可以加快绘图速度。或者,我应该用一条直线连接最后两个点。这两种解决方案中的第二种似乎是一个不错的选择,除了非常快速地移动手指时,您会得到一条较长的直线段,然后是清晰的曲

  • 本文向大家介绍如何在HTML5 SVG中画一条线?,包括了如何在HTML5 SVG中画一条线?的使用技巧和注意事项,需要的朋友参考一下 SVG代表可伸缩矢量图形,是一种用于描述XML中的2D图形和图形应用程序的语言,然后由SVG查看器呈现XML。大多数网络浏览器可以显示SVG,就像显示PNG,GIF和JPG一样。 要在HTML SVG中绘制一条线,请使用SVG <line>元素。 示例 您可以尝试