Я делал рисунок с использованием встроенных инструментов рисования Swift для рисования простых дорожек с прямыми линиями. Одна аномалия, которую я заметил, заключается в том, что если вы хотите, чтобы путь был заполнен, но не имел штриха линии на его краю, он визуализируется без сглаживания и имеет грубый вид. Напротив, линия по умолчанию всегда делает плавно. Существует возможность включить сглаживание, но это тоже не имеет значения. Я мог бы просто сделать ход того же цвета, что и заливка, но это означает, что край расширяется наружу от точек позиции, которые определяют форму.Сглаживающие края неразвернутых контуров на SKShapeNode
//creates shape node to contain path
let myTriangle = SKShapeNode()
//declares path object
let myPath = CGPathCreateMutable()
//moves to starting point of shape
CGPathMoveToPoint(myPath, nil, -50, 0)
//draws lines of shape
CGPathAddLineToPoint(myPath, nil, 0, 100)
CGPathAddLineToPoint(myPath, nil, 50, 0)
CGPathAddLineToPoint(myPath, nil, -50, 0)
//closes path
CGPathCloseSubpath(myPath)
myTriangle.antialiased = true
//adds path to shape node
myTriangle.path = myPath
//sets fill colour and zero line width
myTriangle.fillColor = SKColor.blueColor()
myTriangle.lineWidth = 0
//sets antialiasing
myTriangle.antialiased = true
//sets position in parent object and adds node
myTriangle.position = CGPointMake(600, 600)
self.addChild(myTriangle)
Любые идеи?
Большое спасибо, Kw
может вы предоставляете несколько скриншотов, иллюстрирующих проблемы, и идеал? – Confused
Вот пример, который я создал. Треугольник имеет код, который я разместил, за исключением самой левой точки, которую я переместил, чтобы показать край более четко. Обратите внимание, что красный ящик и черные круги имеют белую линию и идеально ровны. Красная коробка вращается и все еще отлично отрисовывается. Я увеличил изображение на 200%, поэтому надеюсь, что вы увидите разницу: http://imgur.com/a/ypPFk – Kwangle
Это немного удивительно. Если вы погладите треугольник, все будет хорошо? –