計算兩條直線的交點
最近工作中用到這個,去網上搜了一下,有些能用但是不完善,沒考慮與x,y軸平行的情況,稍微修改一下如下,做個記錄,方便後續查閱:
/**
* 計算兩條直角的交點
*/
public static TPoint getCrossPoint(ModelLine line1,ModelLine line2){
TPoint result = new TPoint();
if (line1.pt1.getX() == line1.pt2.getX()) {
float a2 = (line2.pt1.getY()-line2.pt2.getY())/(line2.pt1.getX()-line2.pt2.getX());
float b2 = line2.pt1.getY()-a2*(line2.pt1.getX());
result.setJd(line1.pt1.getX());
result.setWd(a2*result.getJd()+b2);
} else if (line2.pt1.getX() == line2.pt2.getX()) {
float a1 = (line1.pt1.getY()-line1.pt2.getY())/(line1.pt1.getX()-line1.pt2.getX());
float b1 = line1.pt1.getY()-a1*(line1.pt1.getX());
result.setJd(line2.pt1.getX());
result.setWd(a1*result.getJd()+b1);
} else {
float a1 = (line1.pt1.getY()-line1.pt2.getY())/(line1.pt1.getX()-line1.pt2.getX());
float b1 = line1.pt1.getY()-a1*(line1.pt1.getX());
float a2 = (line2.pt1.getY()-line2.pt2.getY())/(line2.pt1.getX()-line2.pt2.getX());
float b2 = line2.pt1.getY()-a2*(line2.pt1.getX());
result.setJd((b1-b2)/(a2-a1));
result.setWd(a1*result.getJd()+b1);
}
return result;
}
java的程式碼寫演算法有些累贅,看著有些麻煩,但是看懂結構其實也不麻煩,其實就是點斜式求解的方法。其他實體類就不給出了。
相關文章
- HDU-1466 計算直線的交點數 DP
- HDU 1466 計算直線的交點數(簡單dp)
- 計算兩豎直直線與橢圓圍成部分面積
- JavaScript點選兩點繪製直線JavaScript
- 在點雲上計算兩點之間的測地線
- POJ 1039-Pipe(計算幾何-線段相交、求交點)
- java 根據GPS經緯度座標計算兩點的直線距離的演算法Java演算法
- 【第一道計算幾何題】 UVA11178 Morley‘s Theorem (二維幾何,旋轉直線求求交點)REM
- JavaScript WebGL 繪製一條直線JavaScriptWeb
- 計算地圖中兩點之間的距離地圖
- matlab練習程式(多線段交點)Matlab
- 計算機圖形學----DDA、Bresenham直線演算法計算機演算法
- halcon xld線段中點、端點和角度的計算
- 微機結構:計算機的交響樂團計算機
- 百度地圖計算兩座標點之間距離計算地圖
- C語言:使用函式計算兩點間的距離C語言函式
- sql 計算兩個經緯度點之間的距離SQL
- JavaScript計算兩個時間點之間的時間差JavaScript
- 程式人生的四個象限和兩條主線
- 常見問題01:計算地球上兩個點的距離
- 根據經緯度計算兩點之間的距離的公式公式
- ios A點到B點返回幾條線iOS
- 交強險日費率計算有變化
- FCPX外掛:直線圖形矩形線條路徑動畫預設動畫
- BZOJ 1043: [HAOI2008]下落的圓盤 計算幾何,貪心,線段交
- 等頻直方圖,計算COST直方圖
- 關於NULL的兩個計算Null
- 計算兩列的相關性
- 使用PostGIS完成兩點間的河流軌跡及流經長度的計算
- 計算兩個時間點相差天數例項程式碼
- 計算機中的浮點運算計算機
- 【計算幾何】求線段相交交點座標
- 雲端計算學習路線教程大綱課件:雲端計算開發程式設計條件結構程式設計
- Php兩點地理座標距離的計算方法和具體程式碼PHP
- 雲端計算的拐點隱現 華為雲開源兩款容器技術
- js計算兩個時間點時間間隔的程式碼例項JS
- 演算法之陣列——共直線的最多點數演算法陣列
- 從智慧計算的點、線、面,讀懂浪潮AI的進化軌跡AI