青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eryar

PipeCAD - Plant Piping Design Software.
RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
posts - 603, comments - 590, trackbacks - 0, articles - 0

OpenCascade Ruled Surface

Posted on 2018-01-10 22:12 eryar 閱讀(1635) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCascade Ruled Surface

eryar@163.com

Abstract. A ruled surface is formed by moving a line connecting points of equal relative arc length or equal relative parametric value on two parametric curves from a start point to a terminate point on the curves. The paper focus on the ruled surface in opencascade.

Key words. OpenCascade, Ruled Surface,直紋面

1.Introduction

《解析幾何》中有關于直紋面Ruled Surface的定義:一曲面S稱為直紋面,如果存在一族直線使得這一族中的每一條直線全在S上。并且S上的每個點都在這一族的某一條直線上。這樣一族直線稱為S的一族直母線。其參數(shù)方程為:

wps_clip_image-10134

即可以將直紋面看作是曲面對當v=0和1時得到的兩個邊界曲線之間進行線性插值得到的曲面。

wps_clip_image-2878

Autodesk 3DS Max中的直紋面,圖片來自:

https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-364FE529-431B-448A-850B-DD9BBECAC90B-htm.html

直紋面是從兩條曲線來構造曲面的方法,Coons曲面是由四邊條界曲線來構造曲面,理解直紋面的構造原理,為進一步理解通用的放樣Sweep造型打下基礎。

2.Ruled Surface Parametric Equation

直紋面的參數(shù)方程也可以寫成如下形式:

wps_clip_image-19769

直接根據(jù)參數(shù)方程可以定義出相應的直紋面。在OpenCASCADE中話,可以從Geom_Surface派生新的類,并實現(xiàn)相應的虛函數(shù)。如實現(xiàn)計算對應參數(shù)u,v的值的虛函數(shù)D0()等。為了簡單起見,用相應的函數(shù)計算直紋面上的點,并生成OpenCASCADE Draw Test Harness的命令腳本文件,方便在Draw中可視化。

如有名的Mobius Strip也是個直紋面:

wps_clip_image-4834

Mobius Strip的參數(shù)方程為:

wps_clip_image-26570

根據(jù)上述參數(shù)方程在OpenCASCADE的Draw生成Mobius Strip,代碼如下所示:

const Standard_Real MOBIUS_RADIUS = 50.0;
void MobiusStrip(Standard_Real theU, Standard_Real theV, gp_Pnt& thePoint)
{
    thePoint.SetX((MOBIUS_RADIUS + theU * Cos(0.5 * theV)) * Cos(theV));
    thePoint.SetY((MOBIUS_RADIUS + theU * Cos(0.5 * theV)) * Sin(theV));
    thePoint.SetZ(theU * Sin(0.5 * theV));
}
void TestMobiusStrip()
{
    std::ofstream aTclFile("d:/mobius.tcl");
    aTclFile << "pload ALL" << std::endl;
    aTclFile << "vinit" << std::endl;
    Standard_Real aWidth = 10.0;
    Standard_Integer aN = 0;
    for (Standard_Real s = -aWidth; s < aWidth; s += 1.0)
    {
        aTclFile << "polyline p" << ++aN ;
        for (Standard_Real t = 0.0; t < M_PI * 2.0; t += 0.01)
        {
            gp_Pnt aPoint;
            MobiusStrip(s, t, aPoint);
            aTclFile << " " << aPoint.X() << " " << aPoint.Y() << " " << aPoint.Z();
        }
        aTclFile << "\n vdisplay p" << aN << std::endl;
    }
    for (Standard_Real t = 0.0; t < M_PI * 2.0; t += 0.2)
    {
        aTclFile << "polyline p" << ++aN;
        gp_Pnt aPoint;
        MobiusStrip(-aWidth, t, aPoint);
        aTclFile << " " << aPoint.X() << " " << aPoint.Y() << " " << aPoint.Z();
        MobiusStrip(aWidth, t, aPoint);
        aTclFile << " " << aPoint.X() << " " << aPoint.Y() << " " << aPoint.Z();
        aTclFile << "\n vdisplay p" << aN << std::endl;
    }
}
int main(int argc, char* argv[])
{
    TestMobiusStrip();
    return 0;
}

在D盤生成一個mobius.tcl腳本文件,直接在Draw Test Harness中輸入命令:

source d:/mobius.tcl

即可得到如下圖所示的Mobius環(huán):

mobius

其他的直紋面只要知道參數(shù)方程,都可以采用這種方法在OpenCASCADE Draw Test Harness中進行顯示。有人也用POV-Ray根據(jù)直紋面的參數(shù)方程來繪制直紋面,效果更不錯。

這是使用參數(shù)方程來表示直紋面的方法,如果知道直紋面的參數(shù)方程,可以從幾何曲面來派生新類Geom_Surface,并實現(xiàn)幾個相關虛函數(shù),應該可以直接給OpenCASCADE顯示了,這種方法沒有測試。

3.Ruled Surface to B Spline Surface

如果已知直紋面的參數(shù)方程,如何用NURBS曲面來表示直紋面呢?在《非均勻有理B樣條》一書中給出了一種將給定兩條曲線C1,C2轉(zhuǎn)換成直紋面的方法。他給出的限制條件是想要生成在v方向是直線的曲面,即是C1(u)和C2(u)之間的線性插值。而且還要求在兩條曲線的等參數(shù)點之間進行插值。又由于曲面是張量各曲面,兩條邊界曲線C1和C2必須具有相同的次數(shù),并定義在相同的節(jié)點矢量上,因此表示這樣的直紋面的B樣條轉(zhuǎn)換過程為:

l 確保兩條曲線定義在相同的參數(shù)區(qū)間內(nèi);

l 確保兩條曲線的次數(shù)相同。如果不同,則將次數(shù)低的曲線升階;

l 確保兩條曲線有相同的節(jié)點矢量。

OpenCASCADE中生成直紋面的是類GeomFill的靜態(tài)函數(shù)Surface(),其實現(xiàn)步驟與上述類似,具體實現(xiàn)的類是GeomFill_Profiler。GeomFill_Profiler是個更通用的類,它可以根據(jù)多條曲線來構造曲面。下面通過Draw Test Harness腳本來根據(jù)兩條曲線構造直紋面。

3.1 根據(jù)兩條直線構造直紋面

# Ruled surface between two lines.

vertex v1 0 0 0
vertex v2 0 8 8
vertex v3 8 0 8
vertex v4 8 8 0
edge e1 v1 v2
edge e2 v3 v4
pruled r1 e1 e2
vdisplay v1 v2 v3 v4 e1 e2 r1

生成直紋面是一個雙線性曲面,如下圖所示:

ruled1

3.2 根據(jù)兩個圓構造直紋面

# Ruled surface between circle and ellipse.

circle c1 0 0 0 5
circle c2 0 0 10 4
mkedge e3 c1
mkedge e4 c2
pruled r2 e3 e4
vdisplay e3 e4 r2

生成的直紋面是一個圓錐面,效果如下圖所示:

wps_clip_image-15852

當頂部的圓旋轉(zhuǎn)時會得到如下圖所示的直紋面:

wps_clip_image-2230

相應的Draw腳本如下:

# Ruled surface between circle and ellipse.

circle c1 0 0 0 5
circle c2 0 0 10 4
mkedge e3 c1
mkedge e4 c2
pruled r2 e3 e4
vdisplay e3 e4 r2
wait 2
trotate e4 0 0 0 0 0 1 30
pruled r2 e3 e4 
vdisplay r2
wait 2
trotate e4 0 0 0 0 0 1 30
pruled r2 e3 e4 
vdisplay r2
wait 2
trotate e4 0 0 0 0 0 1 30
pruled r2 e3 e4 
vdisplay r2

生成的動畫效果如下圖所示:

ruled4

4.Conclusion

根據(jù)直紋面的參數(shù)方程就可以繪制出相應的曲面,然后如何用B樣條曲面來表示直紋面,需要滿足一定的條件。IGES中定義的直紋面就給出了兩種方式:等弧長和等參數(shù)構造。引用《非均勻有理B樣條》書中對兩種形式的說明如下:一般情況下,連接兩條曲線上相對弧長相等的點會產(chǎn)生一個幾何上不同的曲面,而這樣的曲面不能通過NURBS來表示。因此,要在NURBS的直紋面和IGES的直紋面(Type 118 Form 0/1)之間進行數(shù)學上的精確轉(zhuǎn)換是不可能的。

OpenCASCADE的直紋面也是使用的NURBS表示,所以其也是等參數(shù)形式的直紋面。希望在理解根據(jù)兩條曲線來構造曲面的方法來理解更一般的造型算法,即通過多條曲線來構造曲面的造型方法。

5.References

1. Weisstein Eric W. “Ruled Surface”. http://mathworld.wolfram.com/RuledSurface.html

2. www.ms.uky.edu/~lee/visual05/gallery/ruledsurfaces.doc

3. The Initial Graphics Exchange Specification (IGES) Version 6.0

4. 趙罡, 穆國旺, 王拉柱. 非均勻有理B樣條. 清華大學出版社. 2010

5. 丘維聲. 解析幾何. 北京大學出版社. 1996


為了方便大家在移動端也能看到我的博文和討論交流,現(xiàn)已注冊微信公眾號,歡迎大家掃描下方二維碼關注。
Shing Liu(eryar@163.com)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲人成在线观看网站高清| 亚洲青色在线| 国产一区二区三区在线观看网站 | 欧美在线观看天堂一区二区三区| 久久国产精品色婷婷| 久久久久久亚洲精品中文字幕 | 欧美v亚洲v综合ⅴ国产v| 欧美v日韩v国产v| 欧美高清视频| 国产精品国产精品| 国模大胆一区二区三区| 亚洲国产视频一区二区| 一区二区三区视频在线| 欧美一区二区三区在线观看| 麻豆精品视频| 99精品国产热久久91蜜凸| 亚洲影院在线| 欧美二区在线播放| 国产日韩欧美夫妻视频在线观看| 亚洲国产三级网| 亚洲欧美日韩在线综合| 欧美xxxx在线观看| 亚洲一区二区三区乱码aⅴ| 久久先锋资源| 国产精品看片资源| 91久久夜色精品国产网站| 午夜久久久久久久久久一区二区| 欧美1区2区| 午夜精品久久久久久久99热浪潮| 奶水喷射视频一区| 国产一区 二区 三区一级| 一本大道久久a久久综合婷婷| 久久精品五月| 亚洲特级毛片| 欧美日韩精品国产| 在线观看三级视频欧美| 欧美中文字幕第一页| 99在线热播精品免费| 欧美大胆人体视频| 亚洲盗摄视频| 米奇777在线欧美播放| 午夜精品成人在线| 国产精品成人aaaaa网站| 亚洲精品免费一二三区| 久久亚洲综合网| 欧美一级久久久| 欧美香蕉大胸在线视频观看| 亚洲三级视频| 亚洲动漫精品| 欧美高清视频www夜色资源网| 在线看国产日韩| 免费在线观看成人av| 久久精品国产视频| 尤物在线精品| 欧美国产高潮xxxx1819| 免费不卡视频| 99国产一区| 亚洲视频二区| 亚洲视频1区2区| 99视频一区二区| 麻豆亚洲精品| 亚洲黑丝一区二区| 欧美激情欧美激情在线五月| 久久久久久国产精品一区| 一区免费观看| 欧美成人午夜视频| 免费成人高清视频| 亚洲精品中文字幕女同| 亚洲精品美女在线| 欧美午夜精彩| 亚洲伊人第一页| 一本色道**综合亚洲精品蜜桃冫| 免费不卡在线观看| 一区二区三区三区在线| 99视频精品全国免费| 国产视频自拍一区| 久久亚洲综合色| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲韩国日本中文字幕| 亚洲国产精品悠悠久久琪琪| 欧美大片免费久久精品三p| 一区二区三区高清在线观看| 亚洲精品九九| 国产精品一区二区视频 | 亚洲国产精品久久精品怡红院| 男男成人高潮片免费网站| 国产精品99久久久久久www| 亚洲午夜在线视频| 亚洲国产cao| 中国女人久久久| 在线播放视频一区| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品免费视频观看| 久久亚洲影院| 欧美午夜激情小视频| 乱人伦精品视频在线观看| 欧美日一区二区三区在线观看国产免| 亚洲欧美制服另类日韩| 久久综合给合| 欧美亚洲在线| 欧美日韩精品在线观看| 久久人人精品| 国产精品久久久久毛片大屁完整版| 榴莲视频成人在线观看| 国产精品福利在线观看| 欧美国产日韩亚洲一区| 国产亚洲精品久久久久婷婷瑜伽| 最新亚洲视频| 在线免费日韩片| 先锋影院在线亚洲| 亚洲欧美区自拍先锋| 欧美国产日韩亚洲一区| 久久午夜精品| 国产原创一区二区| 99精品视频一区二区三区| 黄色成人免费网站| 亚洲欧美日韩视频一区| 一区二区三区日韩| 欧美大片国产精品| 欧美成年人网| 伊甸园精品99久久久久久| 亚洲一区激情| 亚洲影院高清在线| 欧美日韩国产美| 亚洲国产99精品国自产| 亚洲国产成人av| 欧美在线观看视频在线| 欧美一区二区三区精品| 国产精品久久久免费| 一本久道久久综合婷婷鲸鱼| 亚洲国内自拍| 欧美激情黄色片| 亚洲国产天堂久久国产91| 亚洲人久久久| 欧美激情精品久久久久久| 亚洲国产精品久久91精品| 亚洲精品免费看| 欧美日韩国产二区| 夜夜嗨av色综合久久久综合网| 在线一区二区日韩| 欧美三级电影精品| 亚洲男人av电影| 久久精品国语| 亚洲国产精品精华液2区45| 久久综合导航| 亚洲三级影院| 亚洲一区二区免费视频| 国产精品免费在线| 欧美一区免费视频| 免费视频一区| 亚洲毛片一区| 国产精品女人网站| 欧美在线一级视频| 亚洲国产片色| 午夜精品国产| 激情视频一区| 欧美日韩国产高清| 午夜性色一区二区三区免费视频| 久久蜜桃精品| 亚洲激情婷婷| 国产精品网站视频| 久久婷婷影院| 99这里只有精品| 久久免费99精品久久久久久| 亚洲国产精品久久| 国产精品久久久久秋霞鲁丝| 久久精品视频99| 9色porny自拍视频一区二区| 久久久久国产成人精品亚洲午夜| 亚洲国产视频a| 国产精品稀缺呦系列在线| 看片网站欧美日韩| 亚洲欧美日韩精品| 亚洲日本黄色| 久久久久久91香蕉国产| 日韩视频在线免费观看| 国产综合色产在线精品| 欧美色欧美亚洲高清在线视频| 性视频1819p久久| 91久久久在线| 老司机免费视频一区二区| 亚洲深夜av| 一区在线观看视频| 99国产精品99久久久久久粉嫩| 国内视频一区| 欧美激情亚洲国产| 久久精品道一区二区三区| 99综合视频| 亚洲电影免费观看高清完整版| 欧美一区二区三区日韩| 亚洲六月丁香色婷婷综合久久| 国产欧美一区二区三区在线老狼| 欧美国产日韩一区二区在线观看 | 国产精品日韩精品欧美精品| 蜜桃av综合| 久久精品官网| 欧美亚洲专区| 亚洲在线免费观看| 一区二区三区成人| 99国产精品|