广场除以光线。零件的面积是多少?

时间:2013-03-24 03:15:00

标签: geometry

我有一个正方形,为简单起见,假设左下角是原点,正方形的宽度是1。

光线将正方形分为两部分。我有交叉点的坐标。我想获得位于p1p2的矢量右侧的区域:

ray divides square

现在我有16个if语句检查2个点的每个组合并相应地计算区域。看起来很糟糕。有没有更聪明的方法呢?

2 个答案:

答案 0 :(得分:1)

调用点 A B 而不是p 1 和p 2 。根据惯例,我假设x向右增加,y向上增加。

A 必须有一个坐标(x或y)为0或1.旋转方形(实际上只是两个点)使x = 0。

B 可能位于x = -1,在这种情况下面积为1-(A y + B y ) / 2。

B 可能在y = 0,area = 1+(A y B x )/ 2

B 可能在y = 1,area =(A y -1)B x / 2

答案 1 :(得分:0)

此解决方案假设p1和p2形成一个右三角形,如阴影区域所示:

向量右侧的区域=(w * w) - (0.5 * p1 * p2) 其中w是平方的宽度,0< = p1< = w,0< = p2< = w。

例如,如果w = 1,则p1 = 0.5,并且p2 = 0.75 那么面积=(1 * 1) - (0.5 * 0.5 * 0.75)= 0.8125