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

eryar

PipeCAD - Plant Piping Design Software.
PlantAssistant - Translate AVEVA RVM/SP3D VUE to glTF, STEP, etc.
posts - 606, comments - 590, trackbacks - 0, articles - 0

OpenCascade Law Function

Posted on 2018-03-25 17:11 eryar 閱讀(1338) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCascade Law Function

eryar@163.com

1.Introduction

在OpenCASCADE的TKGeomAlgo Toolkit中提供了一個Law Package,在Law包中有一個基類:Law_Function,字面上翻譯為 規則函數。其類圖如下所示:

wps_clip_image-22828

Figure 1. Law Function class diagram

本文主要對Law_Function的子類進行介紹,進一步理解OpenCASCADE中Law相關類的作用。

2.Law Functions

根據Law_Function可知,Law_Function的子類有常量規則Law_Constant、線性規則Law_Linear、組合規則Law_Composite及B樣條規則Law_BSpFunc。抽象類Law_Function的純虛函數有:

l Continuity(): 規則函數的連續性;

l Value():計算對應參數X的函數值Y;

l D1():計算規則函數在參數X處的一階導數;

l D2():計算規則函數在參數X處的二階導數;

l Bounds():規則函數的定義區間;

wps_clip_image-13300

從上面的虛函數可以看出類Law_Function是一個一元變量的函數,與類math_Function的功能類似。

3.Test Code

下面的代碼將規則函數Law_Function的幾個子類通過生成Draw腳本,在Draw Test Harness中進行可視化,直觀地顯示出了幾個規則函數,便于理解。

/*
Copyright(C) 2018 Shing Liu(eryar@163.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files(the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions :
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include <TColgp_Array1OfPnt2d.hxx>
#include <Law_Constant.hxx>
#include <Law_Linear.hxx>
#include <Law_BSpFunc.hxx>
#include <Law_S.hxx>
#include <Law_Interpol.hxx>
#pragma comment(lib, "TKernel.lib")
#pragma comment(lib, "TKMath.lib")
#pragma comment(lib, "TKG2d.lib")
#pragma comment(lib, "TKG3d.lib")
#pragma comment(lib, "TKGeomBase.lib")
#pragma comment(lib, "TKGeomAlgo.lib")
Standard_Integer aId = 0;
void draw(const Handle(Law_Function)& theLaw, std::ostream& theOutput)
{
    const Standard_Integer aStep = 20;
    Standard_Real aFirst = 0.0;
    Standard_Real aLast = 0.0;
    Standard_Real aDelta = 0.0;
    Standard_Real aX = 0.0;
    Standard_Real aY = 0.0;
    theLaw->Bounds(aFirst, aLast);
    aDelta = (aLast - aFirst) / aStep;
    theOutput << "polyline law" << ++aId;
    for (Standard_Integer i = 0; i <= aStep; ++i)
    {
        aX = aFirst + i * aDelta;
        aY = theLaw->Value(aX);
        theOutput  << " " << aX << " " << aY << " 0.0";
    }
    theOutput << "\n vdisplay law" << aId << std::endl;
    theOutput << "vaspects law" << aId << " -setColor " << ((aId % 2) ? " red " : " yellow ") << std::endl;
}
void test(std::ostream& theOutput)
{
    // 1. Constant law.
    Handle(Law_Constant) aConstantLaw = new Law_Constant();
    aConstantLaw->Set(2.0, 0.0, 1.0);
    draw(aConstantLaw, theOutput);
    // 2. Linear evolution law.
    Handle(Law_Linear) aLinearLaw = new Law_Linear();
    aLinearLaw->Set(1.0, 2.0, 3.0, 5.0);
    draw(aLinearLaw, theOutput);
    // 3. An "S" evolution law.
    Handle(Law_S) aSLaw = new Law_S();
    aSLaw->Set(3.0, 5.0, 6.0, 8.0);
    draw(aSLaw, theOutput);
    // 4. Provides an evolution law that interpolates a set of parameter and value pairs (wi, radi)
    TColgp_Array1OfPnt2d aPoints(1, 4);
    aPoints.SetValue(1, gp_Pnt2d(6.0, 8.0));
    aPoints.SetValue(2, gp_Pnt2d(7.0, 5.0));
    aPoints.SetValue(3, gp_Pnt2d(8.0, 9.0));
    aPoints.SetValue(4, gp_Pnt2d(9.0, 2.0));
    Handle(Law_Interpol) anInterpolativeLaw = new Law_Interpol();
    anInterpolativeLaw->Set(aPoints);
    draw(anInterpolativeLaw, theOutput);
}
int main(int argc, char* argv[])
{
    std::ofstream aTclFile("d:/tcl/law.tcl");
    test(aTclFile);
    return 0;
}

程序會在d:/tcl中生成一個law.tcl文件,將此文件加載到Draw 中即可顯示出規則函數對應的曲線,如下圖所示:

wps_clip_image-6615

Figure 2. Visualization Law Function Curves

由圖可知,常量規則函數在定義區間內是一條直線;線性規則函數是一條直線;S型函數是S型的B樣條曲線;插值函數是根據指定點插值得到的B樣條曲線。

4.Conclusion

在OpenCASCADE中經??梢钥吹揭恍┡cLaw相關的類,本文介紹了TKGeomAlgo中的Law包,綜上所述可知,Law就是一元函數,與math_Function的概念一致。

本文顯示規則曲線的方式可供借鑒,提高開發效率。只需要生成一個文本文件,就可以將結果可視化,對于其他三維的也是一樣。



為了方便大家在移動端也能看到我的博文和討論交流,現已注冊微信公眾號,歡迎大家掃描下方二維碼關注。
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>
            国产日本亚洲高清| 国产自产精品| 国产精品一卡二| 亚洲精品国产精品乱码不99| 欧美一级一区| 亚洲丝袜av一区| 欧美日韩日韩| 香蕉成人伊视频在线观看| 亚洲一区美女视频在线观看免费| 欧美日韩国产在线一区| 亚洲欧美电影院| 亚洲欧美日本视频在线观看| 国产一区二区日韩精品| 蜜桃av综合| 欧美精品一区二区精品网 | 中文亚洲欧美| 国产农村妇女毛片精品久久麻豆 | 国内成人精品2018免费看| 久久综合综合久久综合| 欧美高潮视频| 欧美有码在线观看视频| 久久久久久一区二区三区| 999亚洲国产精| 欧美一级在线播放| 亚洲日本黄色| 性刺激综合网| 亚洲精品一区二区三区四区高清| 亚洲婷婷在线| 最新国产の精品合集bt伙计| 一区二区三区日韩欧美精品| 加勒比av一区二区| 99精品国产在热久久婷婷| 国产综合色产在线精品| 91久久精品国产91久久| 国产精品久久网| 亚洲国产成人91精品| 国产精品国色综合久久| 欧美国产亚洲精品久久久8v| 国产精品日韩精品欧美在线| 亚洲福利视频三区| 国产一区二区三区奇米久涩 | 亚洲国产另类久久久精品极度| 国产精品地址| 亚洲人成在线免费观看| 国模私拍一区二区三区| 一区二区三区日韩| 亚洲精品国产精品国自产观看| 欧美一区二区三区在线视频| 亚洲视频www| 欧美国产一区二区| 美女主播精品视频一二三四| 国产视频在线观看一区二区| 99一区二区| 99国内精品久久| 欧美1区视频| 免费成人高清在线视频| 国模私拍一区二区三区| 亚洲欧美影音先锋| 午夜精品在线观看| 欧美午夜视频| 亚洲视频 欧洲视频| 一区二区免费看| 欧美激情在线免费观看| 91久久国产综合久久91精品网站| 在线不卡欧美| 久久久久成人精品| 免费黄网站欧美| 亚洲第一精品电影| 久久一区二区三区四区| 欧美~级网站不卡| 雨宫琴音一区二区在线| 久久精品水蜜桃av综合天堂| 久久久午夜精品| 狠狠色伊人亚洲综合网站色| 久久国产精品久久久| 久久午夜国产精品| 1024亚洲| 欧美精品一区二区三区蜜臀| 亚洲日本中文字幕| 亚洲中字黄色| 国产永久精品大片wwwapp| 久久久精品一区| 亚洲二区视频在线| 亚洲一区二区三区在线| 国产精品视频不卡| 久久精品视频在线免费观看| 免费人成精品欧美精品| 日韩午夜免费视频| 国产精品家庭影院| 久久精品久久99精品久久| 欧美黄色成人网| 亚洲制服少妇| 在线观看国产日韩| 欧美日本一区二区高清播放视频| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲午夜成aⅴ人片| 国产一区二区高清不卡| 欧美大片91| 亚洲女性喷水在线观看一区| 男同欧美伦乱| 亚洲一区欧美二区| 伊人精品久久久久7777| 欧美另类99xxxxx| 欧美在线不卡| 亚洲精品国久久99热| 久久久999| 亚洲无线观看| 亚洲国产女人aaa毛片在线| 欧美日韩在线看| 久久综合久久综合久久| 亚洲一区在线看| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲午夜成aⅴ人片| 在线免费观看成人网| 欧美日韩一区二区在线观看| 久久婷婷成人综合色| 亚洲欧美清纯在线制服| 亚洲国产精品第一区二区| 久久精品视频在线播放| 亚洲婷婷在线| 亚洲人成网站影音先锋播放| 国产在线麻豆精品观看| 欧美视频在线一区| 欧美成人小视频| 久久亚洲图片| 欧美在线网址| 香港久久久电影| 亚洲私拍自拍| 洋洋av久久久久久久一区| 亚洲高清视频在线观看| 久久综合伊人| 久久久久久久91| 欧美自拍偷拍| 欧美亚洲日本国产| 亚洲欧美另类综合偷拍| 一区二区三区四区在线| 亚洲精品视频啊美女在线直播| 黄色一区二区在线| 一区二区亚洲精品| 国产一区日韩欧美| 国产永久精品大片wwwapp| 国产欧美亚洲一区| 国产视频一区三区| 国产日韩一区二区三区在线| 国产精品欧美日韩一区二区| 欧美午夜一区二区| 欧美午夜视频在线观看| 国产精品超碰97尤物18| 欧美天堂亚洲电影院在线播放| 欧美三级电影精品| 国产精品a级| 国产麻豆成人精品| 国产一区香蕉久久| 在线看片第一页欧美| 最新亚洲一区| 一本久久精品一区二区| 亚洲亚洲精品三区日韩精品在线视频| 一区二区免费在线观看| 亚洲欧美电影院| 久久狠狠亚洲综合| 老色鬼久久亚洲一区二区 | 亚洲综合日本| 亚洲欧美视频在线| 久久精品夜色噜噜亚洲aⅴ| 久久久久久久一区| 亚洲电影免费观看高清| 亚洲精品国产精品乱码不99按摩| 夜夜夜精品看看| 亚洲欧美一区二区三区久久| 久久久福利视频| 欧美久久一区| 国产精品自拍网站| 在线免费观看日本欧美| 一本色道久久99精品综合 | 亚洲午夜小视频| 久久精品1区| 欧美激情精品久久久久| 99国产精品| 欧美专区日韩专区| 欧美日本在线观看| 国产一区二区三区电影在线观看| 亚洲盗摄视频| 亚洲欧美视频| 亚洲国产精品成人综合色在线婷婷 | 国产精品婷婷| 亚洲黑丝在线| 午夜精品久久久久久| 欧美va亚洲va香蕉在线| av成人毛片| 久久久久9999亚洲精品| 欧美午夜影院| 亚洲区欧美区| 久久久久久久久久久久久女国产乱 | 亚洲电影观看| 欧美一区二区三区四区在线观看| 欧美精品国产| 136国产福利精品导航网址| 亚洲免费一在线| 亚洲人www| 美女视频黄免费的久久|