我想通过哈里斯角探测器探测矩形及其角落。它包含一个带角落的块:
filter.cornersDetectedBlock = { (cornerArray:UnsafeMutablePointer<GLfloat>, cornersDetected:UInt, frameTime:CMTime) in
问题是,cornerArray是GLfloat类型,它返回0到1之间的值。我不知道如何用x和y值创建类似CGPoint的东西。任何想法如何实现这一目标?
谢谢!
答案 0 :(得分:1)
我不知道具体细节,但一般来说你必须进行插值。
我假设您正在获取x和y的值,范围从0到1,其中0是左/下边缘,1是右/上边缘?
您只需要布置比率并从一个坐标系转换为另一个坐标系。
0 ... 1000 是的 0 ... 1
.5 x
---- = ----
1 1000
x * 1 = 0.5 * 1000
x = 0.5 * 1000 / 1
x = 500
因此,如果你得到一个值0.5,它将介于0和1000之间。(1000-0)* 0.5。如果您的像素矩形的原点为0,0,则只需将0..1 x值乘以宽度,将0..1 y值乘以像素高度即可。如果像素原点不为0,则需要添加原点。