В SpriteKit я могу использовать сенсорные локаторы для записи «Хитов» в цель, где центр цели «бычий глаз» имеет координаты (0,0). После многократной съемки я получаю все хиты как массив с CGPoints. Поскольку цель составляет 500 х 500 точек (SKScene, sks-файл), все хиты могут иметь положение x от -250 до +250 и аналогично для позиции y.Swift: Как конвертировать CGPoints из SpriteKit в CGRect?
В attatched фото, хиты регистрируются в качестве точек около (150, 150).
Проблема возникает, когда я буду использовать знаменитый LFHeatMap https://github.com/gpolak/LFHeatMap.
+ (UIImage *)heatMapWithRect:(CGRect)rect
boost:(float)boost
points:(NSArray *)points
weights:(NSArray *)weights;
LFHeatMap генерирует UIImage, основанный на массиве, который я добавить к UIImageView. Проблема заключается в том, что имеет UIViews х и у значений, расположенных в отличие от SKScenes
func setHeatMap() {
let points = getPointsFromCoreData()
let weigths = getWeightsFromCoreData()
var rect = CGRectMake(0, 0, 500, 500)
rect.origin = CGPointMake(-250, -250)
let image =
LFHeatMap.heatMapWithRect(rect, boost: 1, points: points, weights: weights)
heatMapView.contentMode = UIViewContentMode.ScaleAspectFit
heatMapView.image = image
}
Снижение выстрелы делает тепловой шаг выше.
Как я могу это решить? Либо все точки должны быть преобразованы, чтобы соответствовать другой системе координат, или координировать CGrect, делающие тепловую карту, должны быть изменены. Как это может быть сделано?