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

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

?? computationalgeometry.java

?? 基于java的3d開發庫。對坐java3d的朋友有很大的幫助。
?? JAVA
字號:
//===========================================================================//=-------------------------------------------------------------------------=//= Module history:                                                         =//= - May 10 2007 - Oscar Chavarro: Original base version                   =//=-------------------------------------------------------------------------=//= References:                                                             =//= [BAER2002] Baeentzen, Jakob Andreas. Aanaes, Henrik. "Generating Signed =//=     Distance Fields From Triangle Meshes",  Technical report            =//=     IMM-TR-2002-21, Thecnical University of Denmark, 2002.              =//= [MANT1988] Mantyla Martti. "An Introduction To Solid Modeling",         =//=     Computer Science Press, 1988.                                       =//===========================================================================package vsdk.toolkit.processing;import vsdk.toolkit.common.VSDK;import vsdk.toolkit.common.Vector3D;import vsdk.toolkit.environment.geometry.Geometry;import vsdk.toolkit.environment.geometry.InfinitePlane;/**This class contains common computational geometry operations (mostlygeometrical querys over existing geometries). This is a companion classfor the `GeometricModeler`, which holds creation and modification operationsover gemetries.*/public class ComputationalGeometry extends ProcessingElement{    private static InfinitePlane workPlane;    static {        workPlane = new InfinitePlane(1, 1, 1, 0);    }    /**    Given a line that passes between points `p0` and `p1`, this method     determines if point `p` falls under `distanceTolerance` in such line.    */    public static int lineContainmentTest(Vector3D p0, Vector3D p1,                                   Vector3D p, double distanceTolerance) {        double d;        Vector3D a, b;        Vector3D lineVector = p1.substract(p0);        double denominator = lineVector.length();        if ( denominator < VSDK.EPSILON ) return Geometry.OUTSIDE;        a = p1.substract(p0);        b = p0.substract(p);        double numerator = a.crossProduct(b).length();        d = (numerator / denominator);        if ( d <= distanceTolerance ) return Geometry.LIMIT;        return Geometry.OUTSIDE;    }    /**    Given a line that passes between points `p0` and `p2`, this method     determines if point `p` falls under `distanceTolerance` in such line.    This method is functionaly equivalent to procedures `contev` and    `intrev` from program [MANT1988].13.3. and section [MANT1988].13.2.2.    */    public static int lineSegmentContainmentTest(Vector3D p0, Vector3D p1,                                   Vector3D p, double distanceTolerance) {        double d;        Vector3D a, b;        a = p1.substract(p0);        b = p.substract(p0);        double denominator = a.length();        if ( denominator < VSDK.EPSILON ) return Geometry.OUTSIDE;        double numerator = a.crossProduct(b).length();        d = numerator / denominator;        if ( d <= distanceTolerance ) {            double t = a.dotProduct(b) / a.dotProduct(a);            if ( t < -VSDK.EPSILON || t > 1+VSDK.EPSILON ) return Geometry.OUTSIDE;            return Geometry.LIMIT;        }        return Geometry.OUTSIDE;    }    /**    This method calculates containment test for triangle defined by its    3 vertex positions.  It implements a region classification based    strategy proposed in [BAER2002].  For a given triangle and with respect    to triangle's containing plane, a poing lies in one of 7 regions:       - R1: inside triangle       - R2: outside triangle, near edge 1       - R3: outside triangle, near edge 2       - R4: outside triangle, near edge 3       - R5: outside triangle, near vertex 1       - R6: outside triangle, near vertex 2       - R7: outside triangle, near vertex 3    */    public static int triangleContainmentTest(        Vector3D p0, Vector3D p1, Vector3D p2, Vector3D p,        double distanceTolerance)    {        Vector3D n, a, b;        a = p1.substract(p0);        b = p2.substract(p0);        n = a.crossProduct(b);        n.normalize();        workPlane.setFromPointNormal(p0, n);        if ( workPlane.doContainmentTest(p, distanceTolerance) ==              Geometry.LIMIT ) {            // Barycentric coordinates test containment technique (Region 1)            Vector3D c = p.substract(p0);            double dot00, dot01, dot02, dot11, dot12, invDenom, u, v;            dot00 = a.dotProduct(a);            dot01 = a.dotProduct(b);            dot02 = a.dotProduct(c);            dot11 = b.dotProduct(b);            dot12 = b.dotProduct(c);            invDenom = 1 / (dot00 * dot11 - dot01 * dot01);            u = (dot11 * dot02 - dot01 * dot12) * invDenom;            v = (dot00 * dot12 - dot01 * dot02) * invDenom;            if ( (u >= 0) && (v >= 0) && (u + v <= 1) ) {                // R1                return Geometry.LIMIT;            }            else if ( (u <= 0) && (v >= 0) && (u + v <= 1) ) {                // R2                return                    lineSegmentContainmentTest(p0, p2, p, distanceTolerance);            }            else if ( (u >= 0) && (v <= 0) && (u + v <= 1) ) {                // R3                return                    lineSegmentContainmentTest(p0, p1, p, distanceTolerance);            }            else if ( (u >= 0) && (v >= 0) && (u + v >= 1) ) {                // R4                return                    lineSegmentContainmentTest(p1, p2, p, distanceTolerance);            }            else if ( (u <= 0) && (v <= 0) ) {                // R5                if ( VSDK.vectorDistance(p, p0) < distanceTolerance ) {                    return Geometry.LIMIT;                }            }            else if ( (u <= 0) && (v >= 1) ) {                // R6                if ( VSDK.vectorDistance(p, p2) < distanceTolerance ) {                    return Geometry.LIMIT;                }            }            else {                // R7                if ( VSDK.vectorDistance(p, p1) < distanceTolerance ) {                    return Geometry.LIMIT;                }            }        }        return Geometry.OUTSIDE;    }    public static void triangleMinMax(        Vector3D p0, Vector3D p1, Vector3D p2, double minMax[])    {        double minX = Double.MAX_VALUE;        double minY = Double.MAX_VALUE;        double minZ = Double.MAX_VALUE;        double maxX = -Double.MAX_VALUE;        double maxY = -Double.MAX_VALUE;        double maxZ = -Double.MAX_VALUE;        if ( p0.x < minX ) minX = p0.x;        if ( p0.y < minY ) minY = p0.y;        if ( p0.z < minZ ) minZ = p0.z;        if ( p0.x > maxX ) maxX = p0.x;        if ( p0.y > maxY ) maxY = p0.y;        if ( p0.z > maxZ ) maxZ = p0.z;        if ( p1.x < minX ) minX = p1.x;        if ( p1.y < minY ) minY = p1.y;        if ( p1.z < minZ ) minZ = p1.z;        if ( p1.x > maxX ) maxX = p1.x;        if ( p1.y > maxY ) maxY = p1.y;        if ( p1.z > maxZ ) maxZ = p1.z;        if ( p2.x < minX ) minX = p2.x;        if ( p2.y < minY ) minY = p2.y;        if ( p2.z < minZ ) minZ = p2.z;        if ( p2.x > maxX ) maxX = p2.x;        if ( p2.y > maxY ) maxY = p2.y;        if ( p2.z > maxZ ) maxZ = p2.z;        minMax[0] = minX;        minMax[1] = minY;        minMax[2] = minZ;        minMax[3] = maxX;        minMax[4] = maxY;        minMax[5] = maxZ;    }}//===========================================================================//= EOF                                                                     =//===========================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人深夜在线观看| 成人深夜福利app| 亚洲小说春色综合另类电影| 中文字幕一区二区三区视频| 国产精品天美传媒| 中文字幕高清不卡| 中文字幕一区二区三区在线播放| 中文字幕亚洲不卡| 亚洲色图丝袜美腿| 亚洲高清免费观看 | 久久伊99综合婷婷久久伊| 精品理论电影在线| 久久精品网站免费观看| 国产午夜精品久久| 国产精品成人网| 一区二区三区在线影院| 亚洲www啪成人一区二区麻豆| 偷拍与自拍一区| 久久精品国产精品青草| 国产成a人无v码亚洲福利| 成人小视频免费在线观看| 91麻豆国产精品久久| 精品视频在线视频| 亚洲精品一区二区三区精华液| 久久久久一区二区三区四区| 亚洲免费观看高清完整版在线观看熊 | 天天av天天翘天天综合网| 日韩不卡在线观看日韩不卡视频| 黄色成人免费在线| 99riav一区二区三区| 欧美精品三级日韩久久| www久久精品| 亚洲色图一区二区三区| 日产国产高清一区二区三区| 国产成人高清视频| 欧美又粗又大又爽| 国产网红主播福利一区二区| 亚洲激情一二三区| 韩国成人在线视频| 色8久久精品久久久久久蜜 | 亚洲人成网站影音先锋播放| 免费看日韩精品| 99久久精品情趣| 日韩片之四级片| 亚洲黄色在线视频| 国产成人av电影免费在线观看| 色妞www精品视频| 久久精品一区蜜桃臀影院| 视频一区二区三区在线| 99精品视频免费在线观看| 久久伊人蜜桃av一区二区| 午夜一区二区三区视频| 91在线视频免费91| 国产日韩欧美精品综合| 精品一区二区免费看| 欧美日韩一区不卡| 亚洲精品亚洲人成人网在线播放| 久久91精品久久久久久秒播| 欧美伊人精品成人久久综合97| 国产免费观看久久| 激情欧美一区二区| 日韩欧美国产不卡| 日韩制服丝袜先锋影音| 91色在线porny| 国产精品色一区二区三区| 麻豆精品精品国产自在97香蕉| 欧美视频中文一区二区三区在线观看| 国产精品久久久久aaaa樱花| 成人免费毛片aaaaa**| 国产偷v国产偷v亚洲高清| 狠狠色伊人亚洲综合成人| 日韩天堂在线观看| 亚洲成av人片在线| 在线播放91灌醉迷j高跟美女| 亚洲激情图片qvod| 色呦呦国产精品| 亚洲美女屁股眼交| 色哟哟一区二区| 亚洲一区在线观看网站| 91福利在线导航| 亚洲aⅴ怡春院| 91精品国产91综合久久蜜臀| 日本不卡一区二区| 精品国产伦一区二区三区观看方式| 久久国内精品视频| 国产偷国产偷精品高清尤物| 成人午夜私人影院| 国产精品久久久久aaaa| 91免费观看视频| 亚洲国产精品人人做人人爽| 欧美日韩久久一区| 九色综合狠狠综合久久| 日本一区二区三级电影在线观看| 成人晚上爱看视频| 亚洲一区在线观看网站| 欧美日韩国产美| 国产乱码精品一区二区三| 中文字幕中文字幕一区二区| 欧美亚洲高清一区| 久久精品国产澳门| 国产精品狼人久久影院观看方式| 色婷婷综合激情| 久久精品国内一区二区三区| 中文字幕va一区二区三区| 在线欧美一区二区| 国产精品一级二级三级| 《视频一区视频二区| 欧美丰满嫩嫩电影| 国产成人av电影在线播放| 亚洲综合清纯丝袜自拍| 精品国产不卡一区二区三区| 成人91在线观看| 久久66热re国产| 亚洲永久免费视频| 国产精品欧美一区二区三区| 欧美精品 国产精品| 丁香婷婷综合色啪| 午夜亚洲国产au精品一区二区| 久久久久久一级片| 欧美高清hd18日本| 色婷婷av一区二区三区大白胸| 日本不卡视频在线| 樱桃视频在线观看一区| 久久综合九色欧美综合狠狠| 在线观看视频一区二区| 国产suv精品一区二区6| 日韩福利电影在线| 亚洲欧美经典视频| 亚洲国产经典视频| 久久香蕉国产线看观看99| 在线电影院国产精品| 91日韩在线专区| 懂色av一区二区夜夜嗨| 韩国精品主播一区二区在线观看| 亚洲一区二区三区中文字幕在线 | 91影院在线观看| 国精产品一区一区三区mba视频| 性感美女久久精品| 亚洲精品日韩一| 中文字幕在线观看一区二区| 久久久99免费| 亚洲精品一区二区三区蜜桃下载| 3atv一区二区三区| 欧美精选在线播放| 欧美日韩黄色一区二区| 欧美在线视频全部完| 在线观看www91| 91激情五月电影| 欧美亚洲精品一区| 欧美日韩三级视频| 欧美理论片在线| 欧美久久久久久久久久| 欧美日韩免费视频| 69p69国产精品| 欧美一区二区三区免费在线看| 欧美区视频在线观看| 欧美军同video69gay| 欧美精品第一页| 精品久久久久久久一区二区蜜臀| 在线播放欧美女士性生活| ww亚洲ww在线观看国产| 日韩和欧美一区二区| 99re亚洲国产精品| 日韩电影在线免费| 国产午夜亚洲精品午夜鲁丝片| 久久久久久亚洲综合影院红桃 | 国产精品美女视频| ...中文天堂在线一区| 亚洲美女屁股眼交| 日本在线不卡视频| 精品一区二区三区久久| 床上的激情91.| 色8久久精品久久久久久蜜| 666欧美在线视频| 欧美韩国日本一区| 亚洲综合色成人| 精品一区二区日韩| 91浏览器在线视频| 91精品欧美福利在线观看 | 99免费精品视频| 欧美性色黄大片手机版| 欧美一区二区三区人| 亚洲国产精品av| 亚洲一区二区三区激情| 秋霞电影一区二区| 国产成人免费在线观看| 91国产精品成人| 久久久蜜桃精品| 午夜a成v人精品| 国产精品99久久久久| 欧美日韩三级一区二区| 国产视频不卡一区| 亚洲一区二区三区四区五区中文 | 青青国产91久久久久久| 国产伦理精品不卡| 欧美影院一区二区三区| 久久综合资源网| 欧美日韩在线电影| 欧美伊人久久大香线蕉综合69| 欧美日韩免费电影|