使用oracle空間座標sdo_geom,可以對空間座標的點線面的位置進行判斷,比如點和點、點和麵、線和面、面和麵的關係等,主要用到的就是sdo_geom.relate
sdo_geom.relate使用方式
sdo_geom.relate(sdo_geometry1, 『mask』, sod_geometry2, tolerance )
其中:sdo_geometry1、sdo_geometry2為空間座標,『mask』為判斷型別,tolerance為判斷精度
判斷型別包括:
anyinteract: sdo_geometry2落在sdo_geometry1面上包括在邊上。
contains: sdo_geometry2完全包含在sdo_geometry1幾何物件中,並且兩個幾何物件的邊沒有交叉。
coveredby: sdo_geometry1完全包含在sdo_geometry2中,並且這兩個幾何物件的邊有乙個或多個點相互重疊。
covers: sdo_geometry2完全包含在sdo_geometry1中,並且這兩個幾何物件的邊有乙個或多個點相互重疊。
disjoint: 兩個幾何沒有重疊交叉點,也沒有共同的邊。
equal: 兩個幾何是相等的。
inside: sdo_geometry1完全包含在sdo_geometry2幾何物件中,並且兩個幾何物件的邊沒有交叉。
on: sdo_geometry1的邊和內部的線完全在sdo_geometry2上。
overlapbdydisjoint: 兩個幾何物件交迭,但是邊沒有交叉。
overlapbdyintersect: 兩個幾何物件交迭,並且邊有部分交叉。
touch: 兩個幾何物件有共同的邊,但沒有交叉。
但是針對不同的型別對於是否符合的返回值是不同的,有的返回true或false,有的返回某個單詞,具體返回什麼可以通過select的形式去查詢,注意返回時單詞的大小寫
使用樣例:
select count(*) from street where sdo_geom.relate(geo_,'disjoint', mdsys.sdo_geometry(2003, 4326, null, sdo_elem_info_array(1,1003,1), sdo_ordinate_array(121.356831206,31.245063571,121.31360161,31.245020755,121.31370161,31.255020755,121.356831206,31.245063571)), 0.000000005 )='false'
空間座標轉換
我們知道所有模型都是獨立建立的,他們擁有自己獨立的乙個區域性座標系來描述模型內部各個麵片頂點之間位置的關係,當我們將這些模型放在一起來組建遊戲場景的時候,邏輯上他們就處在了同乙個座標系內來描述模型與模型之間位置與角度的關係,這個座標系我們所說的世界座標系,而將模型中的每乙個頂點從區域性座標系轉換到世...
OpenGLL 座標空間整合
1 物體定點轉化為螢幕座標經過的座標系統。1 區域性空間 local space 或物體空間 object space 2 世界空間 world space 3 觀察空間 view space 或視覺空間 eye space 4 裁剪空間 clip space 5 螢幕空間 screen space...
空間座標移動詳解
transform translatey 正數 表示下移 反之為上移 transform translatex 正數 表示右移 反之為左移 transform translatez z 定義3d轉換 個人實驗時當z為正數時,向上移動 移動 translate x,y 定義 2d 轉換。transla...