色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 兩條線段交點

呂致盈2年前9瀏覽0評論

MySQL 是一種關系型數據庫管理系統,可以極大地簡化數據的存儲、訪問、管理以及修改等操作。本文將介紹在 MySQL 中如何通過兩條線段求其交點。

CREATE TABLE IF NOT EXISTS `line` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`x1` double NOT NULL,
`y1` double NOT NULL,
`x2` double NOT NULL,
`y2` double NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
INSERT INTO `line` (`x1`, `y1`, `x2`, `y2`) VALUES
(1, 1, 3, 3),
(3, 3, 4, 4);

上面的代碼創建了一張名為 line 的數據庫表,并插入了兩條線段的坐標值。接下來可以使用 SQL 查詢語句來計算這兩條線段的交點。

SELECT 
((l2.y2-l2.y1)*l1.x2-(l2.x2-l2.x1)*l1.y2+(l2.x2*l2.y1-l2.y2*l2.x1))/
((l2.y2-l2.y1)*(l1.x2-l1.x1)-(l2.x2-l2.x1)*(l1.y2-l1.y1)) AS x,
((l1.y1-l1.y2)*l2.x1-(l1.x1-l1.x2)*l2.y1+(l1.x1*l1.y2-l1.y1*l1.x2))/
((l2.y2-l2.y1)*(l1.x2-l1.x1)-(l2.x2-l2.x1)*(l1.y2-l1.y1)) AS y
FROM 
line l1, 
line l2
WHERE 
((l1.y1-l1.y2)*(l2.x2-l2.x1)-(l1.x1-l1.x2)*(l2.y2-l2.y1))!=0 
AND ((l2.y2-l2.y1)*(l1.x2-l1.x1)-(l2.x2-l2.x1)*(l1.y2-l1.y1))!=0 
AND ((l1.x1-l1.x2)*(l2.y2-l2.y1)-(l1.y1-l1.y2)*(l2.x2-l2.x1)!=0)
AND ((l1.x1-l1.x2)*(l2.y1-l1.y1)-(l1.y1-l1.y2)*(l2.x1-l1.x1))/(l2.y2-l2.y1)/(l2.x2-l2.x1)=(l1.y1-l1.y2)/(l1.x1-l1.x2)
AND ((l1.x1-l1.x2)*(l2.y2-l1.y1)-(l1.y1-l1.y2)*(l2.x2-l1.x1))/(l2.y2-l2.y1)/(l2.x2-l2.x1)=(l1.y1-l1.y2)/(l1.x1-l1.x2);

上面的代碼可以計算出兩條線段的交點的 x 坐標和 y 坐標。