在Java中,我有一個類Line
,它有兩個變量:m
和b
,使得該行遵循公式mx + b
。我有兩條這樣的路線。我如何找到兩條線的交點座標爲x
和y
? (假設斜率不同)Java查找兩條線的交點
這裏是class Line
:
import java.awt.Graphics;
import java.awt.Point;
public final class Line {
public final double m, b;
public Line(double m, double b) {
this.m = m;
this.b = b;
}
public Point intersect(Line line) {
double x = (this.b - line.b)/(this.m - line.m);
double y = this.m * x + this.b;
return new Point((int) x, (int) y);
}
public void paint(Graphics g, int startx, int endx, int width, int height) {
startx -= width/2;
endx -= width/2;
int starty = this.get(startx);
int endy = this.get(endx);
Point points = Format.format(new Point(startx, starty), width, height);
Point pointe = Format.format(new Point(endx, endy), width, height);
g.drawLine(points.x, points.y, pointe.x, pointe.y);
}
public int get(int x) {
return (int) (this.m * x + this.b);
}
public double get(double x) {
return this.m * x + this.b;
}
}
你已經得到了代碼:它不工作?另外,如果您試圖解決這些問題,請考慮用2 y = mx + b行的筆和紙做什麼。等於並求解x爲x定義一個通用解,然後使用任一線方程求解y。將公式轉換爲代碼 –
您是否無法計算出公式?這是[math.se]。或者,您是否難以將您已知的公式轉換爲代碼?這不應該太難,而且已經完成了。 – Teepeemm