2016-05-14 75 views
0

在SpriteKit中,我可以使用觸摸位置在目標中記錄「命中」,目標中心「靶心」具有座標(0,0)。大量的拍攝後,我會用CGPoints作爲數組獲取所有匹配。由於目標是500 x 500點(SKScene,sks文件),所有點擊可以有一個從-250到+250的x位置,同樣也適用於y位置。Swift:如何將CGPoints從SpriteKit轉換爲CGRect?

Target

在attatched照片中,命中在約(150,150)註冊爲點。

問題出現在我將使用着名的LFHeatMap https://github.com/gpolak/LFHeatMap

+ (UIImage *)heatMapWithRect:(CGRect)rect 
         boost:(float)boost 
         points:(NSArray *)points 
        weights:(NSArray *)weights; 

的LFHeatMap基於陣列,這是我添加到一個UIImageView上一個UIImage。的問題是,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 
    } 

enter image description here

降低的鏡頭使得熱走高排列不同的x和y值。

我該如何解決這個問題?必須將所有點都轉換爲適合另一個座標系,或者必須改變製作熱圖的CGrect的座標。如何才能做到這一點?

回答

0

當解決方案第一次出現時,這是令人尷尬的容易。 通過點數組運行循環,並將point.y與-1 ...相乘,然後y軸上的所有值都是正確的。