亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hypercube.java

?? 一個java實現的R樹
?? JAVA
字號:
package rtree;/** * A HyperCube in the n-dimensional space. It is represented by two points of n dimensions each. * <p> * Implements basic calculation functions, like <B>getArea()</B> and <B>getUnionMbb()</B>. * <p> * Created: Tue May 18 14:33:37 1999 * <p> * @author Hadjieleftheriou Marios * @version 1.1 */public class HyperCube implements Cloneable {    private Point p1;    private Point p2;    public HyperCube(Point p1, Point p2) {	if (p1 == null || p2 == null) throw new	    IllegalArgumentException("Points cannot be null.");	if (p1.getDimension() != p2.getDimension()) throw new	    IllegalArgumentException("Points must be of the same dimension.");	for (int i = 0; i < p1.getDimension(); i++) {	    if (p1.getFloatCoordinate(i) > p2.getFloatCoordinate(i)) throw new		IllegalArgumentException("Give lower left corner first and upper right corner afterwards.");	}	this.p1 = (Point) p1.clone();	this.p2 = (Point) p2.clone();    }    public int getDimension() {	return p1.getDimension();    }    public Point getP1() {	return (Point) p1.clone();    }    public Point getP2() {	return (Point) p2.clone();    }    public boolean equals(HyperCube h) {	if (p1.equals(h.getP1()) && p2.equals(h.getP2())) {	    return true;	} else {	    return false;	}    }    /**     * Tests to see whether <B>h</B> has any common points with this HyperCube. If <B>h</B> is inside this     * object (or vice versa), it returns true.     *     * @return True if <B>h</B> and this HyperCube intersect, false otherwise.     */    public boolean intersection(HyperCube h) {	if (h == null) throw new	    IllegalArgumentException("HyperCube cannot be null.");	if (h.getDimension() != getDimension()) throw new	    IllegalArgumentException("HyperCube dimension is different from current dimension.");	boolean intersect = true;	for (int i = 0; i < getDimension(); i++) {	    if (p1.getFloatCoordinate(i) > h.p2.getFloatCoordinate(i) ||		p2.getFloatCoordinate(i) < h.p1.getFloatCoordinate(i)) {		intersect = false;		break;	    }	}	return intersect;    }    /**     * Tests to see whether <B>h</B> is inside this HyperCube. If <B>h</B> is exactly the same shape     * as this object, it is considered to be inside.     *     * @return True if <B>h</B> is inside, false otherwise.     */    public boolean enclosure(HyperCube h) {	if (h == null) throw new	    IllegalArgumentException("HyperCube cannot be null.");	if (h.getDimension() != getDimension()) throw new	    IllegalArgumentException("HyperCube dimension is different from current dimension.");	boolean inside = true;	for (int i = 0; i < getDimension(); i++) {	    if (p1.getFloatCoordinate(i) > h.p1.getFloatCoordinate(i) ||		p2.getFloatCoordinate(i) < h.p2.getFloatCoordinate(i)) {		inside = false;		break;	    }	}	return inside;    }    /**     * Tests to see whether <B>p</B> is inside this HyperCube. If <B>p</B> lies on the boundary     * of the HyperCube, it is considered to be inside the object.     *     * @return True if <B>p</B> is inside, false otherwise.     */    public boolean enclosure(Point p) {	if (p == null) throw new	    IllegalArgumentException("Point cannot be null.");	if (p.getDimension() != getDimension()) throw new	    IllegalArgumentException("Point dimension is different from HyperCube dimension.");	return enclosure(new HyperCube(p, p));    }    /**     * Returns the area of the intersecting region between this HyperCube and the argument.     *      * Below, all possible situations are depicted.     *     *     -------   -------      ---------   ---------      ------         ------     *    |2      | |2      |    |2        | |1        |    |2     |       |1     |     *  --|--     | |     --|--  | ------  | | ------  |  --|------|--   --|------|--     * |1 |  |    | |    |1 |  | ||1     | | ||2     | | |1 |      |  | |2 |      |  |     *  --|--     | |     --|--  | ------  | | ------  |  --|------|--   --|------|--     *     -------   -------      ---------   ---------      ------         ------     *     * @param h Given HyperCube.     * @return Area of intersecting region.     */    public float intersectingArea(HyperCube h) {	if (!intersection(h)) {	    return 0;	} else {	    float ret = 1;	    for (int i = 0; i < getDimension(); i++) {		float l1 = p1.getFloatCoordinate(i);		float h1 = p2.getFloatCoordinate(i);		float l2 = h.p1.getFloatCoordinate(i);		float h2 = h.p2.getFloatCoordinate(i);		if (l1 <= l2 && h1 <= h2) {		    // cube1 left of cube2.		    ret *= (h1 - l1) - (l2 - l1);		} else if (l2 <= l1 && h2 <= h1) {		    // cube1 right of cube2.		    ret *= (h2 - l2) - (l1 - l2);		} else if (l2 <= l1 && h1 <= h2) {		    // cube1 inside cube2.		    ret *= h1 - l1;		} else if (l1 <= l2 && h2 <= h1) {		    // cube1 contains cube2.		    ret *= h2 - l2;		} else if (l1 <= l2 && h2 <= h1) {		    // cube1 crosses cube2.		    ret *= h2 - l2;		} else if (l2 <= l1 && h1 <= h2) {		    // cube1 crossed by cube2.		    ret *= h1 - l1;		}	    }	    if (ret <= 0) throw new		ArithmeticException("Intersecting area cannot be negative!");	    return ret;	}    }    /**      * Static impementation. Takes an array of HyperCubes and calculates the mbb of their     * union.     *     * @param  a The array of HyperCubes.     * @return The mbb of their union.     */    public static HyperCube getUnionMbb(HyperCube[] a) {	if (a == null || a.length == 0) throw new	    IllegalArgumentException("HyperCube array is empty.");	HyperCube h = (HyperCube) a[0].clone();	for (int i = 1; i < a.length; i++) {	    h = h.getUnionMbb(a[i]);	}	return h;    }    /**     * Return a new HyperCube representing the mbb of the union of this HyperCube and <B>h</B>     *     * @param  h The HyperCube that we want to union with this HyperCube.     * @return  A HyperCube representing the mbb of their union.     */    public HyperCube getUnionMbb(HyperCube h) {	if (h == null) throw new	    IllegalArgumentException("HyperCube cannot be null.");	if (h.getDimension() != getDimension()) throw new	    IllegalArgumentException("HyperCubes must be of the same dimension.");	float[] min = new float[getDimension()];	float[] max = new float[getDimension()];	for (int i = 0; i < getDimension(); i++) {	    min[i] = Math.min(p1.getFloatCoordinate(i), h.p1.getFloatCoordinate(i));	    max[i] = Math.max(p2.getFloatCoordinate(i), h.p2.getFloatCoordinate(i));	}	return new HyperCube(new Point(min), new Point(max));    }    /**      * Returns the area of this HyperCube.      *     * @return The area as a float.     */    public float getArea() {	float area = 1;	for (int i = 0; i < getDimension(); i++) {	    area *= p2.getFloatCoordinate(i) - p1.getFloatCoordinate(i);	}	return area;    }    /* The MINDIST criterion as described by Roussopoulos.       FIXME: better description here...     */    public float getMinDist(Point p) {	if (p == null) throw new	    IllegalArgumentException("Point cannot be null.");	if (p.getDimension() != getDimension()) throw new	    IllegalArgumentException("Point dimension is different from HyperCube dimension.");	float ret = 0;	for (int i = 0; i < getDimension(); i++) {	    float q = p.getFloatCoordinate(i);	    float s = p1.getFloatCoordinate(i);	    float t = p2.getFloatCoordinate(i);	    float r;	    if (q < s) r = s;	    else if (q > t) r = t;	    else r = q;	    ret += Math.pow(Math.abs(q - r), 2);	}	return ret;    }    public Object clone() {	return new HyperCube((Point) p1.clone(), (Point) p2.clone());    }    public String toString() {	return "P1" + p1.toString() + ":P2" + p2.toString();    }} // HyperCube

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久人人超碰| 欧美人与性动xxxx| 日韩va欧美va亚洲va久久| 中文乱码免费一区二区 | 精品日韩欧美在线| 色悠久久久久综合欧美99| 激情av综合网| 三级欧美韩日大片在线看| 最新国产成人在线观看| 久久久久久免费毛片精品| 欧美日韩国产精选| 99久久精品99国产精品| 国产一区二区三区免费看| 午夜免费欧美电影| 一区二区三区日韩精品视频| 国产精品亲子伦对白| 久久综合网色—综合色88| 在线播放中文一区| 欧美色区777第一页| 一本大道久久精品懂色aⅴ| 国产99久久久国产精品潘金| 久久精品国产亚洲高清剧情介绍 | 天堂av在线一区| 自拍偷拍亚洲欧美日韩| 亚洲国产精品国自产拍av| 精品va天堂亚洲国产| 日韩欧美亚洲一区二区| 69成人精品免费视频| 国产精品第13页| 国产精品免费看片| 中文字幕va一区二区三区| 久久精子c满五个校花| 久久一二三国产| 久久综合色综合88| 久久综合精品国产一区二区三区| 欧美精品成人一区二区三区四区| 欧美日韩一本到| 欧美日本一道本| 欧美丰满少妇xxxxx高潮对白| 欧美调教femdomvk| 欧美日韩国产小视频在线观看| 欧美性色黄大片| 4438成人网| 日韩一区二区精品| 日韩精品中文字幕在线不卡尤物 | 免费欧美高清视频| 麻豆免费看一区二区三区| 麻豆91在线看| 国产精品 欧美精品| 粉嫩av亚洲一区二区图片| 成人自拍视频在线观看| av福利精品导航| 欧美色窝79yyyycom| 欧美日韩视频在线观看一区二区三区| 欧美日韩激情一区二区三区| 在线播放中文一区| www成人在线观看| 一区在线播放视频| 亚洲国产一区视频| 久久国产成人午夜av影院| 国产成人免费视频网站| 99精品在线观看视频| 欧美日韩成人一区二区| 日韩久久免费av| 国产精品久久久一区麻豆最新章节| 亚洲欧洲www| 一区二区成人在线视频| 免费看欧美女人艹b| 成人在线一区二区三区| 欧美在线看片a免费观看| 日韩精品一区国产麻豆| 国产精品久久久久久久蜜臀| 亚洲国产精品一区二区久久恐怖片 | 久久久久88色偷偷免费| 亚洲摸摸操操av| 奇米精品一区二区三区在线观看 | 91九色最新地址| 日韩一级高清毛片| 国产精品婷婷午夜在线观看| 亚洲一区二区综合| 国产一区二区三区日韩 | 色婷婷综合久久久中文一区二区 | 欧美色爱综合网| 久久嫩草精品久久久精品| 最新高清无码专区| 裸体歌舞表演一区二区| 99精品欧美一区二区三区小说 | 天堂成人国产精品一区| 东方aⅴ免费观看久久av| 在线观看免费视频综合| 久久婷婷久久一区二区三区| 亚洲裸体xxx| 激情丁香综合五月| 欧美日本精品一区二区三区| 亚洲国产电影在线观看| 麻豆传媒一区二区三区| 欧美天堂一区二区三区| 欧美国产欧美综合| 美女视频一区二区| 欧美日韩国产一区二区三区地区| 欧美国产综合一区二区| 久久se精品一区二区| 欧美日韩视频在线第一区 | 亚洲欧洲综合另类| 国产激情一区二区三区四区| 欧美一区二区日韩一区二区| 亚洲日穴在线视频| 国产91精品精华液一区二区三区| 91精品国产综合久久香蕉的特点| 亚洲裸体在线观看| www.亚洲精品| 国产日产欧美一区二区三区| 蜜臀久久99精品久久久画质超高清| 在线观看欧美日本| 最新日韩av在线| 成人免费高清在线| 久久精品欧美一区二区三区麻豆| 麻豆高清免费国产一区| 欧美一区二区视频观看视频| 亚洲第一会所有码转帖| 色婷婷综合激情| 中文字幕一区二区三区蜜月| 高潮精品一区videoshd| 337p日本欧洲亚洲大胆色噜噜| 美女国产一区二区三区| 91麻豆精品久久久久蜜臀 | 成人avav影音| 欧美激情资源网| 成人精品高清在线| 国产精品国产三级国产普通话99| 国产成人自拍网| 国产午夜亚洲精品午夜鲁丝片| 国产伦精品一区二区三区免费迷| 欧美变态tickling挠脚心| 日韩激情中文字幕| 日韩一区二区在线看片| 青青青爽久久午夜综合久久午夜| 91精品久久久久久久91蜜桃| 热久久一区二区| 欧美成人免费网站| 欧美色中文字幕| 婷婷久久综合九色综合绿巨人 | 天堂午夜影视日韩欧美一区二区| 欧美吻胸吃奶大尺度电影| 亚洲图片欧美综合| 欧美久久久久免费| 麻豆精品视频在线观看免费| 精品日产卡一卡二卡麻豆| 国产精品一二三四| 国产精品国产自产拍在线| 97se亚洲国产综合自在线不卡| 亚洲色图视频免费播放| 欧美三级电影精品| 久久精品国产在热久久| 国产日产欧美一区| 91免费国产在线| 亚洲va欧美va天堂v国产综合| 91精品国产免费| 国产成人在线视频播放| 亚洲欧美日韩中文字幕一区二区三区| 欧美在线免费视屏| 国内精品视频一区二区三区八戒| 亚洲国产精品ⅴa在线观看| 欧美影视一区在线| 精品无人区卡一卡二卡三乱码免费卡| 久久久久久久久久久黄色| 99riav久久精品riav| 肉丝袜脚交视频一区二区| 337p粉嫩大胆噜噜噜噜噜91av| av电影在线观看一区| 日韩av一级电影| 成人欧美一区二区三区视频网页 | 婷婷中文字幕综合| 久久久一区二区| 色婷婷av一区二区三区之一色屋| 日韩成人免费在线| 国产精品免费视频观看| 在线不卡a资源高清| 波多野结衣在线一区| 视频一区欧美精品| 国产精品传媒入口麻豆| 日韩丝袜美女视频| 91啦中文在线观看| 国产自产v一区二区三区c| 亚洲卡通欧美制服中文| 26uuu色噜噜精品一区| 欧美在线一区二区| 成人综合婷婷国产精品久久免费| 日韩精品成人一区二区三区| 国产精品不卡在线| 日韩精品一区二区三区中文精品| 91免费观看视频| 国产成人综合视频| 蜜臀av一区二区在线观看| 亚洲九九爱视频| 国产精品久久看| 久久午夜羞羞影院免费观看| 欧美丰满少妇xxxbbb| 在线视频欧美精品| 波多野洁衣一区|