gpt4 book ai didi

ios - 如何从 PencilKit 中的 PKInkingTool 设置笔画的恒定宽度

转载 作者:行者123 更新时间:2023-12-01 16:11:23 26 4
gpt4 key购买 nike

当使用手指/铅笔和 PencilKit API 在屏幕上绘图时,我想将笔画的宽度设置为常量。目前,宽度设置在说 PKInkingTool仅在用手指或铅笔绘图时设置基线宽度,如果用手指/铅笔进行慢速或快速笔触,宽度会有所不同。
我不确定如何设置最小示例,有很多代码可以使 PencilKit View 正常工作。您可以使用 this example从 Apple 设置一个简单的绘图应用程序。
这是我选择默认绘图工具的代码:

canvas.tool = PKInkingTool(.pen, color: .white, width: 10)
哪里 canvasPKCanvasView目的。有一个 validWidthRange每个 InkType ( link to docs ) 中的属性,但我不确定这是否可以帮助我实现我想要的。

最佳答案

我找到了一个解决方案(感谢 Will Bishop ),但是我不确定它是否适合所有人。我通过在以恒定宽度完成后重新绘制笔划来解决它。 Apple 为 PKStroke 发布了新的 API和 PKStrokePoint 在 WWDC2020 for iOS 14。这是我的代码的相关部分( newDrawing 是具有恒定笔画宽度的新绘图,而 canvasView 指的是我 PKCanvas 上的当前绘图):

var newDrawingStrokes = [PKStroke]()
for stroke in canvasView.drawing.strokes {
var newPoints = [PKStrokePoint]()
stroke.path.forEach { (point) in
let newPoint = PKStrokePoint(location: point.location,
timeOffset: point.timeOffset,
size: CGSize(width: 5,height: 5),
opacity: CGFloat(1), force: point.force,
azimuth: point.azimuth, altitude: point.altitude)
newPoints.append(newPoint)
}
let newPath = PKStrokePath(controlPoints: newPoints, creationDate: Date())
newDrawingStrokes.append(PKStroke(ink: PKInk(.pen, color: UIColor.white), path: newPath))
}
let newDrawing = PKDrawing(strokes: newDrawingStrokes)
这是我整理的一些初步代码,所以如果您发现任何错误/错误,请告诉我!

关于ios - 如何从 PencilKit 中的 PKInkingTool 设置笔画的恒定宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63620991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com