有没有办法获取CGPath的实际数据,所以它可以保存到文件中并在以后恢复?
是否有关于数据结构的文档?
我想把它写成一个字符串(就像一个SVG路径字符串),或者用字典对象和PList XML文件的某种方式编写,但我会把它拿走!
我正在寻找一种算法,我现在正在快速编程但是伪代码或任何类似的"C系列"语法都可以.
想象一下大量的值列表,例如位图中的像素.你想以视觉上随机的顺序挑选每一个,一次一个,并且永远不会选择相同的两个,并且最终总是挑选它们.
我之前在分形生成器中使用它,因此它不仅是逐行渲染,而是以随机方式慢慢构建,但很久以前,在Java小程序中,我不再拥有代码.
我不相信它使用任何伪随机数生成器,我喜欢它的主要原因是它没有使渲染时间比直线逐行方法花费更长的时间.我看到的任何改组算法都会使渲染需要更长的时间来处理这么多的值,除非我遗漏了一些东西.
编辑:我使用了洗牌阵列方法.当应用程序加载时我会洗牌一次,无论如何都不会花那么长时间.这是我的"经销商"课程的代码.
import Foundation
import Cocoa
import Quartz
class Dealer: NSObject
{
//########################################################
var deck = [(CGFloat,CGFloat)]()
var count = 0
//########################################################
init(_ w:Int, _ h:Int)
{
super.init()
deck.reserveCapacity((w*h)+1)
for y in 0...h
{
for x in 0...w
{
deck.append((CGFloat(x),CGFloat(y)))
}
}
self.shuffle()
}
//########################################################
func shuffle()
{
var j:Int = 0
let total:Int = deck.count-1
for i:Int in 0...total
{
j = Int(arc4random_uniform(UInt32(total)))
deck.swapAt(i, j)
}
}
//########################################################
func deal() -> (CGFloat,CGFloat)
{
let result = …Run Code Online (Sandbox Code Playgroud)