新聞中心
java中怎么求三角形的面積
java中求三角形的面積可以通過海倫公式來求解,具體示例代碼如下:

成都創(chuàng)新互聯公司成立與2013年,是專業(yè)互聯網技術服務公司,擁有項目成都網站設計、成都網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元永吉做網站,已為上家服務,為永吉各地企業(yè)和個人服務,聯系電話:13518219792
public?class?Demo3?{
public?static?void?main(String[]?args)?{
//三邊長
float?a?=?3;
float?b?=?4;
float?c?=?5;
float?s;//面積
s?=?(float)((1.0/4.0)*Math.sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a)));
System.out.println(s);
}
}
海倫公式是利用三角形的三條邊的邊長直接求三角形面積的公式,公式為1/4*sqrt[(a+b+c)*(a+b-c)*(a+c-b)*(b+c-a)]。
java 應用海倫公式求三角形面積(要求判斷三角型是否成立)
import?java.util.Scanner;
public?class?Heron?{
public?static?void?main(String[]?args)?{
Double?a,?b,?c;
Scanner?s?=?new?Scanner(System.in);
System.out.println("輸入三邊長:");
try?{
a?=?Double.parseDouble(s.nextLine());
b?=?Double.parseDouble(s.nextLine());
c?=?Double.parseDouble(s.nextLine());
}?catch?(Exception?e)?{
System.out.println("格式有誤。");
s.close();
return;
}
if?(isTriangle(a,?b,?c))?
System.out.println("面積為:"?+?calcArea(a,?b,?c));
else?
System.out.println("不是正確的三角形。");
s.close();
}
public?static?boolean?isTriangle(Double?a,?Double?b,?Double?c)?{
if?((a?+?b??c)??(a?+?c??b)??(b?+?c??a))
return?true;
return?false;
}
public?static?Double?calcArea(Double?a,?Double?b,?Double?c)?{
Double?s?=?(a?+?b?+?c)?/?2;
Double?area?=?Math.sqrt(s?*?(s?-?a)?*?(s?-?b)?*?(s?-?c));
return?area;
}
}
結果如下:
java 海倫公式編程
海倫公式的幾種另證及其推廣
關于三角形的面積計算公式在解題中主要應用的有:
設△abc中,a、b、c分別為角a、b、c的對邊,ha為a邊上的高,r、r分別為△abc外接圓、內切圓的半徑,p
=
(a+b+c),則
s△abc
=
aha=
ab×sinc
=
r
p
=
2r2sinasinbsinc
=
=
其中,s△abc
=
就是著名的海倫公式,在希臘數學家海倫的著作《測地術》中有記載。
海倫公式在解題中有十分重要的應用。
一、
海倫公式的變形
s=
=
①
=
②
=
③
=
④
=
⑤
二、
海倫公式的證明
證一
勾股定理
分析:先從三角形最基本的計算公式s△abc
=
aha入手,運用勾股定理推導出海倫公式。
證明:如圖ha⊥bc,根據勾股定理,得:
x
=
y
=
ha
=
=
=
∴
s△abc
=
aha=
a×
=
此時s△abc為變形④,故得證。
證二:斯氏定理
分析:在證一的基礎上運用斯氏定理直接求出ha。
斯氏定理:△abc邊bc上任取一點d,
若bd=u,dc=v,ad=t.則
t
2
=
證明:由證一可知,u
=
v
=
∴
ha
2
=
t
2
=
-
∴
s△abc
=
aha
=
a
×
=
此時為s△abc的變形⑤,故得證。
證三:余弦定理
分析:由變形②
s
=
可知,運用余弦定理
c2
=
a2
+
b2
-2abcosc
對其進行證明。
證明:要證明s
=
則要證s
=
=
=
ab×sinc
此時s
=
ab×sinc為三角形計算公式,故得證。
證四:恒等式
分析:考慮運用s△abc
=r
p,因為有三角形內接圓半徑出現,可考慮應用三角函數的恒等式。
恒等式:若∠a+∠b+∠c
=180○那么
tg
·
tg
+
tg
·
tg
+
tg
·
tg
=
1
證明:如圖,tg
=
①
tg
=
②
tg
=
③
根據恒等式,得:
+
+
=
①②③代入,得:
∴r2(x+y+z)
=
xyz
④
如圖可知:a+b-c
=
(x+z)+(x+y)-(z+y)
=
2x
∴x
=
同理:y
=
z
=
代入
④,得:
r
2
·
=
兩邊同乘以
,得:
r
2
·
=
兩邊開方,得:
r
·
=
左邊r
·
=
r·p=
s△abc
右邊為海倫公式變形①,故得證。
證五:半角定理
半角定理:tg
=
tg
=
tg
=
證明:根據tg
=
=
∴r
=
×
y
①
同理r
=
×
z
②
r
=
×
x
③
①×②×③,得:
r3
=
×xyz
用Java編寫一個簡單地通過海倫公式求三角形面積的類
import java.util.*;
class MyException extends Exception{
public MyException(String msg){
super(msg);
}
public String getMessage(){
return super.getMessage();
}
}
public class Hailun{
public static double enter(int i){
Scanner sc = new Scanner(System.in);
boolean flag = false ;
String str = null ;
while(!flag){
System.out.println("輸入第"+i+"條邊長,類型為double型");
str = sc.nextLine();
if(!str.matches("\\d+[.]{0,1}\\d+")){
try{
throw new MyException("輸入內容類型不正確");
}catch(MyException e){
e.printStackTrace();
}
}
else{
flag = true ;
}
}
return Double.valueOf(str);
}
public static double jisuan() throws MyException{
double x = 0,y = 0,z = 0;
x = enter(1);
y = enter(2);
z = enter(3);
isTrue(x,y,z);
double p = (x+y+z)/2;
p = Math.sqrt((p*(p-x)*(p-y)*(p-z)));
return p;
}
public static boolean isTrue(double x,double y,double z) throws MyException{
if(x+yzx+zyy+zx){
return true ;
}
else{
throw new MyException("輸入的三條邊無法構成三角形!");
}
}
public static void main(String args[]){
try{
System.out.println("面積為:"+jisuan());
}catch(MyException e){
e.printStackTrace();
}
}
}
文章標題:海倫公式java代碼,海倫公式由來
當前鏈接:http://www.dlmjj.cn/article/dsidoge.html


咨詢
建站咨詢
