问题:给定一个非平行四边形,在内部随机一个点。
此问题只针对【凸多边形】
这个问题很有趣,上面一个问题是给定一个点,判断是否在四边形内, 这个问题正好是返过来
思路1, 随机一个位置, 判断是否在四边形内。不是的话就重新随机
答:这个方法好low
于是就有了思路2
思路2,取四个点的minX, maxX, 然后根据X, 求出这个X值在四条边上的点的位置(有可能相交, 有可能不相交,不相交的话就不考虑进去)
如图
这个时候再随机A和B之间就得到了Y值,和之前取出的X值就构成了一个点。 完成。 上代码
代码是lua写的
local pos1 = cc.p(200, 200)
local pos2 = cc.p(500, 200)
local pos3 = cc.p(450, 500)
local pos4 = cc.p(150, 500)
local minx = math.min(pos1.x, pos2.x, pos3.x, pos4.x)
local maxx = math.max(pos1.x, pos2.x, pos3.x, pos4.x)
local miny = math.min(pos1.y, pos2.y, pos3.y, pos4.y)
local maxy = math.max(pos1.