为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

点关于直线的对称点

2017-10-07 2页 doc 12KB 20阅读

用户头像

is_321635

暂无简介

举报
点关于直线的对称点点关于直线的对称点 Hdu 2857 点关于直线的对称点 #include #include #include int main() { double x1,x2,y1,y2,xs,ys,xs1,ys1,xe,ye; double x,y; double k1,k2; double a,b,c; int t; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&xs,&ys,&xe,&ye);...
点关于直线的对称点
点关于直线的对称点 Hdu 2857 点关于直线的对称点 #include #include #include int main() { double x1,x2,y1,y2,xs,ys,xs1,ys1,xe,ye; double x,y; double k1,k2; double a,b,c; int t; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&xs,&ys,&xe,&ye);// //x1,y1,x2,y2是要对称的直线,xs,ys是要被对称的点 b=x2-x1; a=y1-y2; c=x1*(y2-y1)-y1*(x2-x1);//求出对称直线的标准方程 // printf("%.3lf %.3lf %.3lf\n",a,b,c); xs1=((b*b-a*a)*xs-2*a*b*ys-2*a*c)/(a*a+b*b);//求出对称点的公式 ys1=((a*a-b*b)*ys-2*a*b*xs-2*b*c)/(a*a+b*b); // printf("%.3lf %.3lf\n",xs1,ys1); if((x2-x1)==0&&(xe-xs1)!=0)//本题的求直线相交 { x=x1; y=ye+((ye-ys1)/(xe-xs1))*x-((ye-ys1)/(xe-xs1))*xe; } else if((x2-x1)!=0&&(xe-xs1)==0) { x=xe; y=y1+((y2-y1)/(x2-x1))*(x-x1); } else { k1=(y2-y1)/(x2-x1); k2=(ye-ys1)/(xe-xs1); // printf("%.3lf %.3lf\n",k1,k2); x=(y1-ye-k1*x1+k2*xe)/(k2-k1); y=k2*(x-xe)+ye; } printf("%.3lf %.3lf\n",x,y); } system("pause"); }
/
本文档为【点关于直线的对称点】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索