问题描述

  为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。

样例输出

与上面的样例输入对应的输出。
例:


数据规模和约定

输入数据中每一个数的范围。  
 例:doule型表示数据。

给定三角形三个顶点的坐标,如何求三角形的外心的坐标呢?

例如 :给定a(x1,y1) b(x2,y2) c(x3,y3)求外接圆心坐标O(x,y)

1.首先,外接圆的圆心是三角形三条边的垂直平分线的交点,我们根据圆心到顶点的距离相等,可以列以下方程

(x1-x)(x1-x)-(y1-y)(y1-y)=(x2-x)(x2-x)+(y2-y)(y2-y);(x2-x)(x2-x)+(y2-y)(y2-y)=(x3-x)(x3-x)+(y3-y)(y3-y)

2化简得到

2*(x2-x1)*x+2*(y2-y1)y=x2^2+y2^2-x1^2-y1^2;
2*(x3-x2)*x+2*(y3-y2)y=x3^2+y3^2-x2^2-y2^2;  令A1=2*(x2-x1);B1=2*(y2-y1);C1=x2^2+y2^2-x1^2-y1^2;A2=2*(x3-x2);B2=2*(y3-y2);C2=x3^2+y3^2-x2^2-y2^2;即A1*x+B1y=C1;A2*x+B2y=C2;

3.最后根据克拉默法则:

  x=((C1*B2)-(C2*B1))/((A1*B2)-(A2*B1));y=((A1*C2)-(A2*C1))/((A1*B2)-(A2*B1));

因此,x,y为最终结果;

代码如下:

package ADV_230;import java.util.Scanner;public class Main {//求三角形的周长public static double perimeter(int x[],int y[]){//求三角形的三边长,求和double a=(x[1]-x[2])*(x[1]-x[2])+(y[1]-y[2])*(y[1]-y[2]);double b=(x[2]-x[3])*(x[2]-x[3])+(y[2]-y[3])*(y[2]-y[3]);double c=(x[3]-x[1])*(x[3]-x[1])+(y[3]-y[1])*(y[3]-y[1]);double perimeter=Math.sqrt(a)+Math.sqrt(b)+Math.sqrt(c);return perimeter;}//求三角形的面积public static double area(int x[],int y[]){//求出三边长,double a=(x[1]-x[2])*(x[1]-x[2])+(y[1]-y[2])*(y[1]-y[2]);double b=(x[2]-x[3])*(x[2]-x[3])+(y[2]-y[3])*(y[2]-y[3]);double c=(x[3]-x[1])*(x[3]-x[1])+(y[3]-y[1])*(y[3]-y[1]);a=Math.sqrt(a);b=Math.sqrt(b);c=Math.sqrt(c);//求出周长的一般后,再利用公式求面积double p=(a+b+c)/2;double area=Math.sqrt(p*(p-a)*(p-b)*(p-c));return area;}//求三角形的外心坐标public static void wx(int x[],int y[],double a[]){double a1=2*(x[2]-x[1]);double b1=2*(y[2]-y[1]);double c1=(x[2]*x[2]+y[2]*y[2]-x[1]*x[1]-y[1]*y[1]);double a2=2*(x[3]-x[2]);double b2=2*(y[3]-y[2]);double c2=(x[3]*x[3]+y[3]*y[3]-x[2]*x[2]-y[2]*y[2]);a[0]=(c1*b2-c2*b1)/(a1*b2-a2*b1);a[1]=(a1*c2-a2*c1)/(a1*b2-a2*b1);}//求三角形的重心坐标public static void zx(int x[],int y[],double a[]){a[0]=(x[1]+x[2]+x[3])*1.0/3;a[1]=(y[1]+y[2]+y[3])*1.0/3;}public static void main(String[] args) {int x[]=new int[4];int y[]=new int[4];Scanner cin=new Scanner(System.in);for(int i=1;i<=3;i++){x[i]=cin.nextInt();y[i]=cin.nextInt();}System.out.println(String.format("%.2f",perimeter(x,y)));System.out.println(String.format("%.2f",area(x,y)));double a[]=new double[2];wx(x,y,a);System.out.print(String.format("%.2f",a[0])+" ");System.out.println(String.format("%.2f",a[1]));zx(x,y,a);System.out.print(String.format("%.2f",a[0])+" ");System.out.println```
(String.format("%.2f",a[1]));}
}

算法提高 12-1三角形相关推荐

  1. 蓝桥杯 算法提高 输出正反三角形 (Java)

    使用循环结构打印下述图形,打印行数n由用户输入.图中每行事实上包括两部分,中间间隔空格字符数m也由用户输入. 样例输入n,m: 5 4 样例输出: * ************ *********** ...

  2. 试题 算法提高 输出正反三角形

    资源限制时间限制:1.0s 内存限制:512.0MB 题目描述: 思路: 先打印第一个三角形,然后再考虑第二个三角形. 考虑之后可以发现,第二个三角形是第一个三角形平移了m个单位,然后垂直旋转后的结果 ...

  3. 蓝桥杯 ADV-88 算法提高 输出正反三角形

    使用循环结构打印下述图形,打印行数n由用户输入.图中每行事实上包括两部分,中间间隔空格字符数m也由用户输入. 样例输入n,m:  5 4 样例输出: * ********* *** ******* * ...

  4. 算法提高 输出正反三角形

    使用循环结构打印下述图形,打印行数n由用户输入.图中每行事实上包括两部分,中间间隔空格字符数m也由用户输入. 样例输入n,m: 5 4样例输出: * ********* *** ******* *** ...

  5. Java实现 蓝桥杯 算法提高 三角形

    算法提高 12-1三角形 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体.分别设计独立的函数计算三角形的周长.面积. ...

  6. 蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】

    算法提高 12-1三角形   时间限制:1.0s   内存限制:256.0MB      问题描述 为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体.分别设计独立的函数计算三角形的周长 ...

  7. 算法提高 邮票面值设计

    算法提高 邮票面值设计 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤13)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮 ...

  8. 蓝桥杯练习系统习题-算法提高1

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法提高1 题目搜索方式:Ctrl+F--> 输入题目名称-> ...

  9. 蓝桥杯 算法提高 日期计算

    算法提高 日期计算 时间限制:1.0s 内存限制:256.0MB问题描述已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰,逢400年闰的情况. ...

  10. 算法提高 邮票面值设计 搜索 动态规划

    算法提高 邮票面值设计 时间限制:1.0s   内存限制:256.0MB 问题描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤13)种邮票的情况下(假定所有的邮票数量都足够),如何设 ...

最新文章

  1. Unity3d创建注册登录页面(1)
  2. PESCMS Ticket 客服工单系统 v1.2.5 发布
  3. no.8 C控制语句:循环 01
  4. hadoop集群swap_性能瓶颈--MEM(swap)
  5. iOS开发之 [NSNull length]:unrecognized selector sent
  6. python tkinter进度条_在python3.7中更新tkinter进度条
  7. 萝卜家园win11系统32位微软原版镜像v2021.08
  8. 三、面向对象——9-初始化块
  9. 全新 Veeam Availability Suite 9.5 成为率先全面集成 Windows Server 2016和Hyper-V技术的 可用性解决方案之一...
  10. day01初步接触python和环境的安装
  11. udp程序启动后检测都是未启动_【例子教程】联想Leez P710 物联网AI物体检测
  12. 侦听键盘,将data写入文件data.out(成功版本)
  13. 漫画:互联网公司会议观察
  14. LCS算法和背包算法
  15. 2021美赛C题解题记录(内含完整代码)
  16. 基于车辆运动学模型的LQR横向控制算法
  17. 剑指offer刷题(2)--面向华为
  18. 汕尾市海陆丰民间开胃小食摘录
  19. J Magn Reson Imaging:磁共振指纹(MRF)动脉自旋标记(ASL)的灌注特性估计
  20. 【工具】60 个相见恨晚的神器工具

热门文章

  1. 空间搜索引擎:Censys
  2. (四十七)论文阅读 | 轻量级网络之MobileNetV3
  3. c语言的ifelse嵌套,c语言if else语句嵌套
  4. 单片机应用系统设计技术——自行车测速仿真
  5. mongodb设置密码
  6. 京津跨域通勤特征与职住空间分布研究
  7. hive case when then 多条件
  8. 计算机组成原理rll编码,计算机组成原理自考复习资料(8) _ 重庆自考网
  9. 计算方法 | 如何证明向量的无穷范数是p范数
  10. Discuz!X 插件制作教程(二) --管理中心