设为首页 加入收藏

TOP

C语言求任意四边形面积和其关联的三角形面积的关系 (二)
2014-11-23 22:19:17 来源: 作者: 【 】 浏览:2
Tags:语言 任意 四边 面积 关联 三角形 关系
-a3);
dian[0]=(k2*a3-k1*a2+b2-b3)/(k2-k1);
dian[1]=(dian[0]-a2)*k1+b2;
ss.x=dian[0];ss.y=dian[1];
return ss;
}
}
else
{
k2=(b2-b3)/(a2-a3);
dian[0]=a0;
dian[1]=(a0-a2)*k2+b2;
ss.x=dian[0];ss.y=dian[1];
return ss;
}

}
else if((a0-a1)!=0&&(b2-b3)==0)
{
if((b0-b1)==0) /*所比较的直线平行*/
{
if((a1-a2)==0)
{
dian[0]=a1;
dian[1]=(b3-b0)*(a1-a0)/(a3-a0)+b0;
ss.x=dian[0];ss.y=dian[1];
return ss;
}
else if((a3-a0)==0)
{
dian[0]=a0;
dian[1]=(b2-b1)*(a0-a1)/(a2-a1)+b1;
ss.x=dian[0];ss.y=dian[1];
return ss;
}
else
{
k1=(b2-b1)/(a2-a1);
k2=(b0-b3)/(a0-a3);
dian[0]=(k2*a3-k1*a2+b2-b3)/(k2-k1);
dian[1]=(dian[0]-a2)*k1+b2;
ss.x=dian[0];ss.y=dian[1];
return ss;
}
}
else
{
k1=(b0-b1)/(a0-a1);
dian[1]=b2;
dian[0]=(b2-b0)/k1+a0;
ss.x=dian[0];ss.y=dian[1];
return ss;
}
}
else
{
k1=(b0-b1)/(a0-a1);
k2=(b2-b3)/(a2-a3);
if(k1==k2) /*所比较的直线平行*/
{
if((a1-a2)==0)
{
dian[0]=a1;
dian[1]=(b3-b0)*(a1-a0)/(a3-a0)+b0;
ss.x=dian[0];ss.y=dian[1];
return ss;
}
else if((a3-a0)==0)
{
dian[0]=a0;
dian[1]=(b2-b1)*(a0-a1)/(a2-a1)+b1;
ss.x=dian[0];ss.y=dian[1];
return ss;
}
else
{
k1=(b2-b1)/(a2-a1);
k2=(b0-b3)/(a0-a3);
dian[0]=(k2*a3-k1*a2+b2-b3)/(k2-k1);
dian[1]=(dian[0]-a2)*k1+b2;
ss.x=dian[0];ss.y=dian[1];
return ss;
}
}
else
{
dian[0]=(k1*a0-k2*a2+b2-b0)/(k1-k2);
dian[1]=b0+(dian[0]-a0)*k1;
ss.x=dian[0];ss.y=dian[1];
return ss;
}
}
}
/* 求四边形的面积 */
double si_area(double s[])
{
double t1,a1;
t1=(s[0]+s[1]+s[2]+s[3])/2.0;
a1=sqrt((t1-s[0])*(t1-s[1])*(t1-s[2])*(t1-s[3]));
return a1;
}

\


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇位运算超强总结 下一篇链表的反转

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: