計算兩條直線的交點
最近工作中用到這個,去網上搜了一下,有些能用但是不完善,沒考慮與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的程式碼寫演算法有些累贅,看著有些麻煩,但是看懂結構其實也不麻煩,其實就是點斜式求解的方法。其他實體類就不給出了。
相關文章
- 點到直線的距離,垂足,對稱點,兩點所成的直線方程
- 計算兩豎直直線與橢圓圍成部分面積
- 在點雲上計算兩點之間的測地線
- 【第一道計算幾何題】 UVA11178 Morley‘s Theorem (二維幾何,旋轉直線求求交點)REM
- 空間或平面判斷兩線段相交(求交點)
- leetcode 24 兩兩交換連結串列中的節點LeetCode
- leetcode 24.兩兩交換連結串列中的節點LeetCode
- 24. 兩兩交換連結串列中的節點 (中等)
- LeetCode 24. 兩兩交換連結串列中的節點LeetCode
- 計算地圖中兩點之間的距離地圖
- JavaScript WebGL 繪製一條直線JavaScriptWeb
- halcon xld線段中點、端點和角度的計算
- JavaScript計算兩個時間點之間的時間差JavaScript
- C語言:使用函式計算兩點間的距離C語言函式
- 10.13 每日一題 24. 兩兩交換連結串列中的節點每日一題
- 根據經緯度計算兩點之間的距離的公式公式
- 常見問題01:計算地球上兩個點的距離
- 浮點數線上轉hex計算工具
- 計算機網路中的資料交換計算機網路
- mysql交換兩行或兩列的值MySql
- 計算兩列的相關性
- 【LeetCode連結串列#9】圖解:兩兩交換連結串列節點LeetCode圖解
- 微機結構:計算機的交響樂團計算機
- 使用PostGIS完成兩點間的河流軌跡及流經長度的計算
- Php兩點地理座標距離的計算方法和具體程式碼PHP
- 雲端計算:交換分割槽管理 Swap
- 如何判斷兩條軌跡(或曲線)的相似度?
- 《計算機網路微課堂》3-8 集線器與交換機的區別計算機網路
- 《計算機網路微課堂》實驗4 集線器和交換機的區別計算機網路
- FCPX外掛:直線圖形矩形線條路徑動畫預設動畫
- 演算法之陣列——共直線的最多點數演算法陣列
- 雲端計算學習路線教程大綱課件:交換分割槽管理 Swap
- 雲端計算學習路線教程大綱課件:雲端計算開發程式設計條件結構程式設計
- 交換兩個變數變數
- 從智慧計算的點、線、面,讀懂浪潮AI的進化軌跡AI
- 關聯線探究,如何連線流程圖的兩個節點流程圖
- 異或交換兩個數的值
- JavaScript實現兩個數的交換JavaScript