Performance 在坐标之间绘制形状

Performance 在坐标之间绘制形状,performance,graphics,draw,Performance,Graphics,Draw,给定一些随机的w和h以及4个坐标(x1,y1)…(x4,y4)检查x,y计数器是否在这4个坐标内 我试图填充这4个坐标之间的空间,它们通常会形成一个矩形,但旋转角度不同 目前,我有一个嵌套的for循环在我的“画布”上移动,但我没有找到一种方法来检查我的计数器是否在坐标内 我已经研究过画线的算法来构建这个,但到目前为止没有运气 有人能给我指一些参考资料吗。要检查点是否在三角形内,请确定方向 (y2 - y1)*(x3 - x2) - (y3 - y2)*(x2 - x1) 如果点是线性的,则符号

给定一些随机的w和h以及4个坐标(x1,y1)…(x4,y4)检查x,y计数器是否在这4个坐标内

我试图填充这4个坐标之间的空间,它们通常会形成一个矩形,但旋转角度不同

目前,我有一个嵌套的for循环在我的“画布”上移动,但我没有找到一种方法来检查我的计数器是否在坐标内

我已经研究过画线的算法来构建这个,但到目前为止没有运气


有人能给我指一些参考资料吗。

要检查点是否在三角形内,请确定方向

(y2 - y1)*(x3 - x2) - (y3 - y2)*(x2 - x1)
如果点是线性的,则符号为零,否则逆时针为负,顺时针为正。如果方向ABC、ABD和ACD相同,则A位于三角形BCD中


所以我们可以先检查凸包,它可以是直线,三角形,或四边形。如果它是一个三角形,我们可以很容易地测试内部的其他点。这是一个凸四边形,测试也可以,但我们必须添加一个额外的点。

要检查一个点是否在三角形内,请选择方向

(y2 - y1)*(x3 - x2) - (y3 - y2)*(x2 - x1)
如果点是线性的,则符号为零,否则逆时针为负,顺时针为正。如果方向ABC、ABD和ACD相同,则A位于三角形BCD中

所以我们可以先检查凸包,它可以是直线,三角形,或四边形。如果它是一个三角形,我们可以很容易地测试内部的其他点。这是一个凸四边形,测试也有效,但我们必须添加一个额外的点