導航:首頁 > 編程語言 > java圓的交點

java圓的交點

發布時間:2023-03-26 06:25:29

A. java編程判斷這兩條直線是否相交,若相交,求出交點。

您好,下面是我寫的代碼,麻煩看一下是否符合要求。

Point類:

public class Point {

private int x;

private int y;

public int getX() {

return x;

}

public void setX(int x) {

this.x = x;

}

public int getY() {

return y;

}

public void setY(int y) {

this.y = y;

}

}

Line類:

public class Line {

private Point a;

private Point b;

public Point getA() {

return a;

}

public Point getB() {

return b;

}

public Line(Point a, Point b) {

this.a = a;

this.b = b;

}

}

LineIntersect類:

public class LineIntersect {

private Line ab;

private Line cd;

public LineIntersect(Line ab, Line cd) {

this.ab = ab;

this.cd = cd;

}

public void JudgeLineIntersect() {

Point A = this.ab.getA();

Point B = this.ab.getB();

Point C = this.cd.getA();

Point D = this.cd.getB();

int d1 = (B.getY() - A.getY()) * (D.getX() - C.getX());

int d2 = (B.getX() - A.getX()) * (D.getY() - C.getY());

int d3 = (C.getY() - A.getY()) * (B.getX() - A.getX());

int d4 = (C.getX() - A.getX()) * (B.getY() - A.getY());

if (d1 == d2) {

System.out.println("兩條直線平行。");

} else if (d3 == d4) {

System.out.println("兩條直線重合。");

} else {

System.out.println("兩條直線相交。");

int d5 = C.getY() * D.getX() - C.getX() * D.getY();

int d6 = A.getY() * B.getX() - A.getX() * B.getY();

float intersect_x = ((C.getX() - D.getX()) * d6 - (A.getX() - B.getX()) * d5)

/ ((B.getY() - A.getY()) * (D.getX() - C.getX()) - (B.getX() - A.getX()) * (D.getY() - C.getY()));

float intersect_y = ((C.getY() - D.getY()) * d6 - (A.getY() - B.getY()) * d5)

/ ((B.getY() - A.getY()) * (D.getX() - C.getX()) - (B.getX() - A.getX()) * (D.getY() - C.getY()));

System.out.println("交點的X坐標為:" + intersect_x);

System.out.println("交點的Y坐標為:" + intersect_y);

}

}

}

下面是主類(測試類):

import java.util.Scanner;


public class Main {

public static void main(String[] args) {

System.out.print("請輸入A點的X坐標:");

Scanner inAX = new Scanner(System.in);

int ax = inAX.nextInt();

System.out.print("請輸入A點的Y坐標:");

Scanner inAY = new Scanner(System.in);

int ay = inAY.nextInt();

System.out.print("請輸入B點的X坐標:");

Scanner inBX = new Scanner(System.in);

int bx = inBX.nextInt();

System.out.print("請輸入B點的Y坐標:");

Scanner inBY = new Scanner(System.in);

int by = inBY.nextInt();

System.out.print("請輸入C點的X坐標:");

Scanner inCX = new Scanner(System.in);

int cx = inCX.nextInt();

System.out.print("請輸入C點的Y坐標:");

Scanner inCY = new Scanner(System.in);

int cy = inCY.nextInt();

System.out.print("請輸入D點的X坐標:");

Scanner inDX = new Scanner(System.in);

int dx = inDX.nextInt();

System.out.print("請輸入D點的Y坐標:");

Scanner inDY = new Scanner(System.in);

int dy = inDY.nextInt();

Point A = new Point();

A.setX(ax);

A.setY(ay);

Point B = new Point();

B.setX(bx);

B.setY(by);

Point C = new Point();

C.setX(cx);

C.setY(cy);

Point D = new Point();

D.setX(dx);

D.setY(dy);

Line AB = new Line(A, B);

Line CD = new Line(C, D);

LineIntersect lineIntersect = new LineIntersect(AB, CD);

lineIntersect.JudgeLineIntersect();

inAX.close();

inAY.close();

inBX.close();

inBY.close();

inCX.close();

inCY.close();

inDX.close();

inDY.close();

}

}

下面是我剛才做的測試結果:

B. Java 線段和圓相交,求焦點坐標

通過線段的兩個坐標可以求出線段的方程。再和圓的方程聯立,求的解就是焦點的坐標。

C. java怎麼判斷線段與圓相交

先求線段到圓心的距離,來跟半徑比較,如果大於半徑,則不相交,else,判斷線段是否包含垂心,若包含,則相交,否則,不相交。。。這是思路問題,java代碼很好實現的。

D. 已知三個圓心 (a1,b1) (a2,b2) (a3,b3) ,半徑 r1, r2 ,r3 ,求用 javascirpt 或是 php 或是 C 求出 交點

用C語言相銀薯兄當復手銀雜 以及javascript和Php 介意你用matlab 它的語法和C很鋒襲像 稍微對照下酒明白了

E. 如何求兩個圓的交點坐標,請舉例

將兩個圓的方程相減,就消掉了x²,y²項,剩下一個關於x, y的一次方程,可解得y=kx+b。

再用代入法,將y=kx+b代入其中一笑喚叢個圓的方程,就得到關於x的一元二次方程,解得x。

從而由y=kx+b得到y。

圓的一般方程為 x^2+y^2+Dx+Ey+F=0 (D^2+E^2-4F>0),或可以表示為(X+D/2)^2+(Y+E/2)^2=(D2+E2-4F)/4

圓半徑的長度定出圓周的大小,圓心的位置確定圓在平面上的位置。如果已知:(1)圓半徑長R;(2)中心A的坐標(a,b),則圓的大小及其在平面上關於坐標軸的位置就已確定碰櫻。根據圖形的幾何尺寸與坐標的聯系可以得出圓的標准方程。

(5)java圓的交點擴展閱讀

關於圓的定理有:

1、切線定理

垂直於過切點的半徑;經過半徑的外端點,並且垂直於這條半徑的直線,是這個圓的切線。

切線的判定方法:經過半徑外端並且垂直於這條半徑的直線是圓的切線。

2、切線長定理

從圓外一點到圓的兩條切線的長相等,那點與圓心的連線平分切線的夾角。

3、切割線定鏈羨理

圓的一條切線與一條割線相交於p點,切線交圓於C點,割線交圓於A B兩點 , 則有pC^2=pA·pB

設ABP是⊙O的一條割線,PT是⊙O的一條切線,切點為T,則PT²=PA·PB

4、割線定理

從圓外一點引圓的兩條割線,這一點到每條割線與圓交點的距離的積相等。

一條直線與一條弧線有兩個公共點,我們就說這條直線是這條曲線的割線。

5、垂弦定理

垂直於弦的直徑平分這條弦,並且平分這條弦所對的兩條弧。

6、弦切角定理

弦切角等於對應的圓周角。(弦切角就是切線與弦所夾的角)



F. java中如何計算兩條線的交點

1.列方程解應用題
2.數形結合解題

G. java怎麼畫出一個五角星里邊有一個五邊形

畫一條水平線,通過此線上的任意點做一個圓。 2.將圓規的一腿放在圓與直線的其一交點上,通過上述圓的圓心畫半圓,並與之交兩點。連接這兩點做垂直線,與先前的水平線相交與(a)點. 3.張開圓規,以水平線與第一個圓的兩個交點為圓心以相同半徑在水平線上下第一個圓外分別做兩個交點,這樣可以得到一條通過第一個圓圓心的正交線,與第一個圓相交的位於水平線上方的點稱之為(b).這是正五邊形的第一個角。 4.將圓規的一腳放在(a)點上,(a)(b)間距為半徑做另一個圓,交水平線於點(c)。 5.將圓拆跡帆規的一腳放在(b)點上,(b)(c)間距為半徑做圓,交第一個圓州者於兩點,這是正五邊形的第二、三兩點。 6.將圓規的一腳分別放在二、三兩點上,旅雹同樣是(b)(c)間距為半徑交第一個圓於另外兩點,這兩點就是正五邊形的最後兩點。 連接相鄰兩點就構成了正五邊形。 7.如果不是連接相鄰兩點(即對角線連接),就會得到一個五芒星。

H. 簡單 JAVA編程題 判斷兩個圓是否相交 圓心1坐標X=1 Y=1 半徑 1 圓心2 坐標為 X=2 Y=2 半徑 2

public class Circle_J {
public static void main(String[] args){
System.out.println("請依次輸入第一個圓的圓心坐標x和y以及半徑,彼此以空格隔開");
Scanner read = new Scanner(System.in);
String string1 = String.valueOf(read.nextLine());
String[] data1 = string1.split(" ");

System.out.println("請依次輸入第二個圓的圓心坐標x和y以及半徑,彼此以空格隔開");
String string2 = String.valueOf(read.nextLine());
String[] data2 = string2.split(" ");

double xDistance = Math.abs(Integer.parseInt(data2[0])-Integer.parseInt(data1[0]));
double yDistance = Math.abs(Integer.parseInt(data2[1])-Integer.parseInt(data1[1]));
double rCount =Integer.parseInt(data2[2]) +Integer.parseInt(data1[2]);
if((Math.pow(xDistance,2)+Math.pow(xDistance,2))<=(Math.pow(rCount,2)))
{
System.out.println(Math.pow(rCount,2));
System.out.println("相交");
}else{
System.out.println("不相交");
}
read.close();
}
}

I. 用JAVA編寫一個程序,要求如下:

可以看一下我寫的這篇博客:java判斷圓與直線的關系和求納芹交點坐洞判畢沖困標

J. 用java寫一個一條直線是否與圓相交的函數

【分析】:
//直線:y=a*x+b;
//圓:(x+c)^2+(y+d)^2=r^2;
//求交點方程:(a^2+1)x^2+(2c+2ab+2ad)x+[c^2+(b+d)^2]=0
//A=a^2+1; B=2c+2ab+2ad; C=c^2+(b+d)^2;
//D=B^2-4AC;
//只要判隱答模斷D是否小於0就可以判斷是否相交,小於0說明不相交,否則相交
【代碼】:
public class Exam_line_circle {
public boolean line(double a,double b,double c,double d,double r){//判斷直線與圓是否相交的函數
double A=Math.pow(a,2)+1;
double B=2*c+2*a*b+2*a*d;
double C=Math.pow(c,2)+(b+d)*2;
double D=Math.pow(B,2)-4*A*C;
if(D<0) return false;//不相交
return true;//相交
}
public static void main(String[] args){
Exam_line_circle lc=new Exam_line_circle();
double a=2, b=2, c=2, d=1,r=1;//自己輸入對應的5個數據吧(b=1就不相交了)
boolean bo=lc.line(a, b, c, d, r);
if(bo==true) System.out.println("直線與圓相交");
else System.out.println("直線與圓不相交!");
}
}
【結果】:灶緩
b=2:直線與舉友圓相交
b=1:直線與圓不相交!

閱讀全文

與java圓的交點相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接