我正在使用DisplacementMapFilter
在平面地图上创建类似地球的效果。我的问题是,我还想将一些标签同步到这张地图。我在平面地图上有他们位置的x / y坐标,但是我需要将它们映射到现在位移的图像。
我希望能够使用包含置换贴图的BitmapData来执行此操作,以便更改位图会更改置换滤镜和标签位置。此外,标签不会是静态的,准确性也相当重要。
答案 0 :(得分:2)
DisplacementMapFilter引用中有一个公式:
dstPixel[x, y] =
srcPixel[
x + ((componentX(x, y) - 128) * scaleX) / 256,
y + ((componentY(x, y) - 128) *scaleY) / 256)
]
componentX/Y
是位图中的颜色通道(您可以将任何通道绑定到坐标)
据我了解,您需要像过滤器一样移动地图标签。只需使用标签坐标(x,y),样本源位图getPixel32(x, y)
。然后你需要弄清楚x,y要采用哪些字节 - 我猜默认它分别是R,G组件。然后使用公式来获得移位的标签坐标
注意:getPixel32以ARGB格式返回uint颜色。使用移位运算符(>>
)来获取颜色分量:
uint ARGB = bitmap.getPixel32(x, y);
int B = ARGB & 0xFF;
int G = (ARGB >> 8) & 0xFF;
int R = (ARGB >> 16) & 0xFF;