精华内容
下载资源
问答
  • 快速求sincos值的方法

    千次阅读 2020-02-04 13:26:04
    于是我想到一个快速求得sin值的方法,我把从0到4 范围内的sin值 制作成多维数组.然后把A ,例如 A=2.14;分解成2,1,4 的数组下标.首先把float类型的2.14转成char*类型"2.14",再把字符的每一位数分别转成int类型的数组...

    当涉及大量计算时,直接用 float s=sin(A); 的方法需要每次都计算一次三角函数.这样会让计算速度变得很慢.

    于是我想到一个快速求得sin值的方法,我把从0到4 范围内的sin值 制作成多维数组.然后把A值 ,例如 A=2.14;分解成2,1,4 的数组下标.首先把float类型的2.14转成char*类型"2.14",再把字符的每一位数分别转成int类型的数组下标[2,1,4]用于查找结果.

    这样就可以快速得到sin(2.14)的值.不过这种情况的计算结果是有一点点偏差的,适合对计算结果要求不太精确但要快速计算的情况.

    这里只列出sin的情况,其它cos,acos也是类似.甚至可以做平方,开方.的快速查找.

    
    #ifndef _MATH查300_H_
        #define _MATH查300_H_
    
    
    #include<cmath>
    int iChar,iChar1,iChar2;
    float fPre=-100000000;static bool b是负数=false;
    cchar *Ψs转fG;
    //==============================
    inline const char*const & s巜f查(const float& int_value)
        {
        sprintf(Ψs转G, "%f", int_value);
        return Ψs转G;
        }
    //====这里使用了位运算实现整形类型的加法=========
    inline int 加(int a, int b)
        {
        return (b) ? 加((a)^(b), ((a)&(b))<<1) : (a);
        }
    #define 乘10一(i)        加(加(((i)<<3),((i)<<1)),-1)
              
    //====[-4 亠 4]====================================
    #define Δmath查22(f,asin300,SIN,零值)    \
        if((f) 二二 0)return 零值;else if(4 < (f))return SIN((f));\
        if((f) < 0){b是负数=true;(f)=-(f);}else b是负数=false;\
        Ψs转fG=s巜f查((f));\
        iChar=Ψs转fG[0]-'0';iChar1=Ψs转fG[2]-'0';\
        /**/ iChar2=乘10一(Ψs转fG[3]-'0');/* iChar2=(Ψs转fG[3]-'0')*10-1; */\
        if(iChar2 二二 -1)iChar2=0;/*  */printf("Ψs转fG=%s(iChar=%d,iChar1=%d,iChar2=%d )",Ψs转fG,iChar,iChar1,iChar2);\
        for(int i=iChar2;i < 100;++i)\
            {\
            const float&f此=asin300[iChar][iChar1][i][0];\
            if((f) <二 f此)\
                {/* printf("(找到 i= %d,(f)=%lf,f此=%lf,fPre=%lf)",i,(f),f此,fPre); */\
                if(i!=0)\
                    {\
                    const float& 此一f=f此-(f),f一pre=(f)-fPre;printf("(此一f=%lf,f一pre=%lf)",此一f,f一pre);/*  */\
                    if(b是负数)\
                        {\
                        if(此一f < f一pre)return -asin300[iChar][iChar1][i][1];/*fPre☐☐☐f☐f此  */\
                        else return -asin300[iChar][iChar1][i-1][1];/*fPre☐f☐☐☐f此  */\
                        }\
                    else \
                        {\
                        if(此一f < f一pre)return asin300[iChar][iChar1][i][1];/*fPre☐☐☐f☐f此  */\
                        else return asin300[iChar][iChar1][i-1][1];/*fPre☐f☐☐☐f此  */\
                        }\
                    }\
                else \
                    {\
                    if(b是负数)\
                       return -asin300[iChar][iChar1][i][1];\
                    else \
                        return asin300[iChar][iChar1][i][1];\
                    }\
                }\
            fPre=f此;\
            }\
        /*  */printf("找不到= %lf\n",(f));\
        return SIN(f);//INF表示“无穷大”NAN 表示无效数字
    只查找 [0亠 ㄥ180] 的弧度范围{f,sin值}/
    static float sin400[4][10][100][2]=/* [0.000000亠1.000000], */
    {
    {
    {{0.001000,0.001000},{0.002000,0.002000},{0.003000,0.003000},{0.004000,0.004000},{0.005000,0.005000},{0.006000,0.006000},{0.007000,0.007000},{0.008000,0.008000},{0.009000,0.009000},{0.010000,0.010000},{0.011000,0.011000},{0.012000,0.012000},{0.013000,0.013000},{0.014000,0.013999},{0.015000,0.014999},{0.016000,0.015999},{0.017000,0.016999},{0.018000,0.017999},{0.019000,0.018999},{0.020000,0.019998},{0.021000,0.020998},{0.022000,0.021998},{0.023000,0.022998},{0.024000,0.023997},{0.025000,0.024997},{0.026000,0.025997},{0.027000,0.026996},{0.028000,0.027996},{0.029000,0.028996},{0.030000,0.029995},{0.031000,0.030995},{0.032000,0.031994},{0.033000,0.032994},{0.034000,0.033993},{0.035000,0.034993},{0.036000,0.035992},{0.037000,0.036991},{0.038000,0.037990},{0.039000,0.038990},{0.040000,0.039989},{0.041000,0.040988},{0.042000,0.041987},{0.043000,0.042986},{0.044000,0.043985},{0.045000,0.044984},{0.046000,0.045983},{0.047000,0.046982},{0.048000,0.047981},{0.049000,0.048980},{0.049999,0.049979},{0.050999,0.050977},{0.051999,0.051976},{0.052999,0.052975},{0.053999,0.053973},{0.054999,0.054972},{0.055999,0.055970},{0.056999,0.056969},{0.057999,0.057967},{0.058999,0.058965},{0.059999,0.059963},{0.060999,0.060962},{0.061999,0.061960},{0.062999,0.062958},{0.063999,0.063956},{0.064999,0.064954},{0.065999,0.065951},{0.066999,0.066949},{0.067999,0.067947},{0.068999,0.068945},{0.069999,0.069942},{0.070999,0.070940},{0.071999,0.071937},{0.072999,0.072934},{0.073999,0.073932},{0.074999,0.074929},{0.075999,0.075926},{0.076999,0.076923},{0.077999,0.077920},{0.078999,0.078917},{0.079999,0.079914},{0.080999,0.080911},{0.081999,0.081907},{0.082999,0.082904},{0.083999,0.083900},{0.084999,0.084897},{0.085999,0.085893},{0.086999,0.086889},{0.087999,0.087886},{0.088999,0.088882},{0.089999,0.089878},{0.090999,0.090874},{0.091999,0.091869},{0.092999,0.092865},{0.093999,0.093861},{0.094999,0.094856},{0.095999,0.095852},{0.096999,0.096847},{0.097999,0.097842},{0.098999,0.098837},{0.099999,0.099832}},
    {{0.100999,0.100827},{0.101999,0.101822},{0.102999,0.102817},{0.103999,0.103812},{0.104999,0.104806},{0.105999,0.105801},{0.106999,0.106795},{0.107999,0.107789},{0.108999,0.108783},{0.109999,0.109777},{0.110999,0.110771},{0.111999,0.111765},{0.112999,0.112759},{0.113999,0.113752},{0.114999,0.114746},{0.115999,0.115739},{0.116999,0.116732},{0.117999,0.117725},{0.118999,0.118718},{0.119999,0.119711},{0.120999,0.120704},{0.121999,0.121696},{0.122999,0.122689},{0.123999,0.123681},{0.124999,0.124673},{0.125999,0.125666},{0.126999,0.126658},{0.127999,0.127649},{0.128999,0.128641},{0.129999,0.129633},{0.130999,0.130624},{0.131999,0.131616},{0.132999,0.132607},{0.133999,0.133598},{0.134999,0.134589},{0.135999,0.135580},{0.136999,0.136570},{0.137999,0.137561},{0.138999,0.138551},{0.139999,0.139542},{0.140999,0.140532},{0.141999,0.141522},{0.142999,0.142512},{0.143999,0.143501},{0.144999,0.144491},{0.145999,0.145480},{0.146999,0.146470},{0.147999,0.147459},{0.148999,0.148448},{0.149999,0.149437},{0.150998,0.150425},{0.151998,0.151414},{0.152998,0.152402},{0.153998,0.153390},{0.154998,0.154379},{0.155998,0.155366},{0.156998,0.156354},{0.157998,0.157342},{0.158998,0.158329},{0.159998,0.159317},{0.160998,0.160304},{0.161998,0.161291},{0.162998,0.162278},{0.163998,0.163264},{0.164998,0.164251},{0.165998,0.165237},{0.166998,0.166223},{0.167998,0.167209},{0.168998,0.168195},{0.169998,0.169181},{0.170998,0.170166},{0.171998,0.171151},{0.172998,0.172137},{0.173998,0.173122},{0.174998,0.174106},{0.175998,0.175091},{0.176998,0.176075},{0.177998,0.177060},{0.178998,0.178044},{0.179998,0.179028},{0.180998,0.180012},{0.181998,0.180995},{0.182998,0.181978},{0.183998,0.182962},{0.184998,0.183945},{0.185998,0.184928},{0.186998,0.185910},{0.187998,0.186893},{0.188998,0.187875},{0.189998,0.188857},{0.190998,0.189839},{0.191998,0.190821},{0.192998,0.191802},{0.193998,0.192783},{0.194998,0.193765},{0.195998,0.194746},{0.196998,0.195726},{0.197998,0.196707},{0.198998,0.197687},{0.199998,0.198667}},
    {{0.200998,0.199647},{0.201998,0.200627},{0.202998,0.201607},{0.203998,0.202586},{0.204998,0.203565},{0.205998,0.204544},{0.206998,0.205523},{0.207998,0.206501},{0.208998,0.207480},{0.209998,0.208458},{0.210998,0.209436},{0.211998,0.210413},{0.212998,0.211391},{0.213998,0.212368},{0.214998,0.213345},{0.215998,0.214322},{0.216998,0.215299},{0.217998,0.216275},{0.218998,0.217251},{0.219998,0.218227},{0.220998,0.219203},{0.221998,0.220179},{0.222998,0.221154},{0.223998,0.222129},{0.224998,0.223104},{0.225998,0.224079},{0.226998,0.225053},{0.227998,0.226028},{0.228998,0.227002},{0.229998,0.227975},{0.230998,0.228949},{0.231998,0.229922},{0.232998,0.230895},{0.233998,0.231868},{0.234998,0.232841},{0.235998,0.233813},{0.236998,0.234785},{0.237998,0.235757},{0.238998,0.236729},{0.239998,0.237700},{0.240998,0.238672},{0.241998,0.239642},{0.242998,0.240613},{0.243998,0.241584},{0.244998,0.242554},{0.245998,0.243524},{0.246998,0.244494},{0.247998,0.245463},{0.248998,0.246433},{0.249998,0.247402},{0.250997,0.248370},{0.251997,0.249339},{0.252997,0.250307},{0.253997,0.251275},{0.254997,0.252243},{0.255997,0.253210},{0.256997,0.254178},{0.257997,0.255145},{0.258997,0.256112},{0.259997,0.257078},{0.260997,0.258044},{0.261997,0.259010},{0.262997,0.259976},{0.263997,0.260941},{0.264997,0.261907},{0.265997,0.262872},{0.266997,0.263836},{0.267997,0.264801},{0.268997,0.265765},{0.269997,0.266729},{0.270997,0.267692},{0.271997,0.268656},{0.272997,0.269619},{0.273997,0.270582},{0.274997,0.271544},{0.275997,0.272507},{0.276997,0.273469},{0.277997,0.274430},{0.278997,0.275392},{0.279997,0.276353},{0.280997,0.277314},{0.281997,0.278274},{0.282997,0.279235},{0.283997,0.280195},{0.284997,0.281155},{0.285997,0.282114},{0.286997,0.283073},{0.287997,0.284032},{0.288997,0.284991},{0.289997,0.285949},{0.290997,0.286908},{0.291997,0.287865},{0.292997,0.288823},{0.293997,0.289780},{0.294997,0.290737},{0.295997,0.291694},{0.296997,0.292650},{0.297997,0.293606},{0.298997,0.294562},{0.299997,0.295517}},
    {{0.300997,0.296473},{0.301997,0.297427},{0.302997,0.298382},{0.303997,0.299336},{0.304997,0.300290},{0.305997,0.301244},{0.306997,0.302197},{0.307997,0.303150},{0.308997,0.304103},{0.309997,0.305056},{0.310997,0.306008},{0.311997,0.306960},{0.312997,0.307911},{0.313997,0.308863},{0.314997,0.309813},{0.315997,0.310764},{0.316997,0.311714},{0.317997,0.312664},{0.318997,0.313614},{0.319997,0.314564},{0.320997,0.315513},{0.321997,0.316461},{0.322997,0.317410},{0.323997,0.318358},{0.324997,0.319306},{0.325997,0.320253},{0.326997,0.321200},{0.327997,0.322147},{0.328997,0.323094},{0.329997,0.324040},{0.330997,0.324986},{0.331997,0.325931},{0.332997,0.326877},{0.333997,0.327821},{0.334997,0.328766},{0.335997,0.329710},{0.336997,0.330654},{0.337997,0.331598},{0.338997,0.332541},{0.339997,0.333484},{0.340997,0.334426},{0.341997,0.335369},{0.342997,0.336311},{0.343997,0.337252},{0.344997,0.338193},{0.345997,0.339134},{0.346997,0.340075},{0.347997,0.341015},{0.348997,0.341955},{0.349997,0.342895},{0.350996,0.343834},{0.351996,0.344773},{0.352996,0.345711},{0.353996,0.346649},{0.354996,0.347587},{0.355996,0.348525},{0.356996,0.349462},{0.357996,0.350398},{0.358996,0.351335},{0.359996,0.352271},{0.360996,0.353207},{0.361996,0.354142},{0.362996,0.355077},{0.363996,0.356012},{0.364996,0.356946},{0.365996,0.357880},{0.366996,0.358813},{0.367996,0.359747},{0.368996,0.360679},{0.369996,0.361612},{0.370996,0.362544},{0.371996,0.363476},{0.372996,0.364407},{0.373996,0.365338},{0.374996,0.366269},{0.375996,0.367199},{0.376996,0.368129},{0.377996,0.369059},{0.378996,0.369988},{0.379996,0.370917},{0.380996,0.371845},{0.381996,0.372774},{0.382996,0.373701},{0.383996,0.374629},{0.384996,0.375556},{0.385996,0.376482},{0.386996,0.377408},{0.387996,0.378334},{0.388996,0.379260},{0.389996,0.380185},{0.390996,0.381110},{0.391996,0.382034},{0.392996,0.382958},{0.393996,0.383881},{0.394996,0.384805},{0.395996,0.385727},{0.396996,0.386650},{0.397996,0.387572},{0.398996,0.388493},{0.399996,0.389415}},
    {{0.400996,0.390336},{0.401996,0.391256},{0.402996,0.392176},{0.403996,0.393096},{0.404996,0.394015},{0.405996,0.394934},{0.406996,0.395852},{0.407996,0.396771},{0.408996,0.397688},{0.409996,0.398606},{0.410996,0.399522},{0.411996,0.400439},{0.412996,0.401355},{0.413996,0.402271},{0.414996,0.403186},{0.415996,0.404101},{0.416996,0.405016},{0.417996,0.405930},{0.418996,0.406843},{0.419996,0.407757},{0.420996,0.408669},{0.421996,0.409582},{0.422996,0.410494},{0.423996,0.411406},{0.424996,0.412317},{0.425996,0.413228},{0.426996,0.414138},{0.427996,0.415048},{0.428996,0.415958},{0.429996,0.416867},{0.430996,0.417776},{0.431996,0.418684},{0.432996,0.419592},{0.433996,0.420499},{0.434996,0.421406},{0.435996,0.422313},{0.436996,0.423219},{0.437996,0.424125},{0.438996,0.425031},{0.439996,0.425935},{0.440996,0.426840},{0.441996,0.427744},{0.442996,0.428648},{0.443996,0.429551},{0.444996,0.430454},{0.445996,0.431356},{0.446996,0.432258},{0.447996,0.433160},{0.448996,0.434061},{0.449996,0.434961},{0.450995,0.435862},{0.451995,0.436761},{0.452995,0.437661},{0.453995,0.438560},{0.454995,0.439458},{0.455995,0.440356},{0.456995,0.441254},{0.457995,0.442151},{0.458995,0.443048},{0.459995,0.443944},{0.460995,0.444840},{0.461995,0.445735},{0.462995,0.446630},{0.463995,0.447525},{0.464995,0.448419},{0.465995,0.449312},{0.466995,0.450205},{0.467995,0.451098},{0.468995,0.451990},{0.469995,0.452882},{0.470995,0.453773},{0.471995,0.454664},{0.472995,0.455555},{0.473995,0.456445},{0.474995,0.457334},{0.475995,0.458223},{0.476995,0.459112},{0.477995,0.460000},{0.478995,0.460888},{0.479995,0.461775},{0.480995,0.462662},{0.481995,0.463548},{0.482995,0.464434},{0.483995,0.465319},{0.484995,0.466204},{0.485995,0.467089},{0.486995,0.467972},{0.487995,0.468856},{0.488995,0.469739},{0.489995,0.470622},{0.490995,0.471504},{0.491995,0.472385},{0.492995,0.473266},{0.493995,0.474147},{0.494995,0.475027},{0.495995,0.475907},{0.496995,0.476786},{0.497995,0.477665},{0.498995,0.478543},{0.499995,0.479421}},
    {{0.500995,0.480298},{0.501995,0.481175},{0.502995,0.482052},{0.503995,0.482928},{0.504995,0.483803},{0.505995,0.484678},{0.506995,0.485552},{0.507995,0.486426},{0.508995,0.487300},{0.509995,0.488173},{0.510995,0.489045},{0.511995,0.489917},{0.512995,0.490789},{0.513995,0.491660},{0.514995,0.492530},{0.515995,0.493400},{0.516995,0.494270},{0.517995,0.495139},{0.518995,0.496008},{0.519995,0.496876},{0.520995,0.497743},{0.521995,0.498610},{0.522995,0.499477},{0.523995,0.500343},{0.524995,0.501208},{0.525995,0.502074},{0.526995,0.502938},{0.527995,0.503802},{0.528995,0.504666},{0.529995,0.505529},{0.530995,0.506391},{0.531995,0.507253},{0.532995,0.508115},{0.533995,0.508976},{0.534995,0.509836},{0.535995,0.510696},{0.536995,0.511556},{0.537995,0.512415},{0.538995,0.513273},{0.539995,0.514131},{0.540995,0.514989},{0.541995,0.515846},{0.542995,0.516702},{0.543995,0.517558},{0.544995,0.518413},{0.545995,0.519268},{0.546995,0.520123},{0.547995,0.520976},{0.548995,0.521830},{0.549995,0.522683},{0.550994,0.523535},{0.551994,0.524387},{0.552994,0.525238},{0.553994,0.526088},{0.554994,0.526939},{0.555994,0.527788},{0.556994,0.528637},{0.557994,0.529486},{0.558994,0.530334},{0.559994,0.531181},{0.560994,0.532028},{0.561994,0.532875},{0.562994,0.533721},{0.563994,0.534566},{0.564994,0.535411},{0.565994,0.536255},{0.566994,0.537099},{0.567994,0.537942},{0.568994,0.538785},{0.569994,0.539627},{0.570994,0.540469},{0.571994,0.541310},{0.572994,0.542151},{0.573994,0.542991},{0.574994,0.543830},{0.575994,0.544669},{0.576994,0.545507},{0.577994,0.546345},{0.578994,0.547182},{0.579994,0.548019},{0.580994,0.548855},{0.581994,0.549691},{0.582994,0.550526},{0.583994,0.551361},{0.584994,0.552195},{0.585994,0.553028},{0.586994,0.553861},{0.587994,0.554693},{0.588994,0.555525},{0.589994,0.556356},{0.590994,0.557187},{0.591994,0.558017},{0.592994,0.558846},{0.593994,0.559675},{0.594994,0.560504},{0.595994,0.561332},{0.596994,0.562159},{0.597994,0.562986},{0.598994,0.563812},{0.599994,0.564638}},
    {{0.600994,0.565463},{0.601994,0.566287},{0.602994,0.567111},{0.603994,0.567934},{0.604994,0.568757},{0.605994,0.569579},{0.606994,0.570401},{0.607994,0.571222},{0.608994,0.572043},{0.609994,0.572862},{0.610994,0.573682},{0.611994,0.574501},{0.612994,0.575319},{0.613994,0.576136},{0.614994,0.576953},{0.615994,0.577770},{0.616994,0.578586},{0.617994,0.579401},{0.618994,0.580216},{0.619994,0.581030},{0.620994,0.581844},{0.621994,0.582657},{0.622994,0.583469},{0.623994,0.584281},{0.624994,0.585092},{0.625994,0.585903},{0.626994,0.586713},{0.627994,0.587522},{0.628994,0.588331},{0.629994,0.589140},{0.630994,0.589947},{0.631994,0.590755},{0.632994,0.591561},{0.633994,0.592367},{0.634994,0.593172},{0.635994,0.593977},{0.636994,0.594781},{0.637994,0.595585},{0.638994,0.596388},{0.639994,0.597190},{0.640994,0.597992},{0.641994,0.598793},{0.642994,0.599594},{0.643994,0.600394},{0.644994,0.601193},{0.645994,0.601992},{0.646994,0.602790},{0.647994,0.603588},{0.648994,0.604385},{0.649993,0.605181},{0.650993,0.605977},{0.651993,0.606772},{0.652993,0.607567},{0.653993,0.608361},{0.654993,0.609154},{0.655993,0.609947},{0.656993,0.610739},{0.657993,0.611530},{0.658993,0.612321},{0.659993,0.613112},{0.660993,0.613901},{0.661993,0.614690},{0.662993,0.615479},{0.663993,0.616267},{0.664993,0.617054},{0.665993,0.617841},{0.666993,0.618626},{0.667993,0.619412},{0.668993,0.620197},{0.669993,0.620981},{0.670993,0.621764},{0.671993,0.622547},{0.672993,0.623329},{0.673993,0.624111},{0.674993,0.624892},{0.675993,0.625672},{0.676993,0.626452},{0.677993,0.627231},{0.678993,0.628010},{0.679993,0.628788},{0.680993,0.629565},{0.681993,0.630342},{0.682993,0.631118},{0.683993,0.631893},{0.684993,0.632668},{0.685993,0.633442},{0.686993,0.634215},{0.687993,0.634988},{0.688993,0.635760},{0.689993,0.636532},{0.690993,0.637303},{0.691993,0.638073},{0.692993,0.638843},{0.693993,0.639612},{0.694993,0.640380},{0.695993,0.641148},{0.696993,0.641915},{0.697993,0.642681},{0.698993,0.643447},{0.699993,0.644212}},
    {{0.700993,0.644977},{0.701993,0.645741},{0.702993,0.646504},{0.703993,0.647267},{0.704993,0.648028},{0.705993,0.648790},{0.706993,0.649550},{0.707993,0.650310},{0.708993,0.651070},{0.709993,0.651828},{0.710993,0.652586},{0.711993,0.653344},{0.712993,0.654101},{0.713993,0.654857},{0.714993,0.655612},{0.715993,0.656367},{0.716993,0.657121},{0.717993,0.657874},{0.718993,0.658627},{0.719993,0.659379},{0.720993,0.660131},{0.721993,0.660882},{0.722993,0.661632},{0.723993,0.662381},{0.724993,0.663130},{0.725993,0.663878},{0.726993,0.664626},{0.727993,0.665373},{0.728993,0.666119},{0.729993,0.666864},{0.730993,0.667609},{0.731993,0.668353},{0.732993,0.669097},{0.733993,0.669840},{0.734993,0.670582},{0.735993,0.671323},{0.736993,0.672064},{0.737993,0.672804},{0.738993,0.673544},{0.739993,0.674282},{0.740993,0.675021},{0.741993,0.675758},{0.742993,0.676495},{0.743993,0.677231},{0.744993,0.677966},{0.745993,0.678701},{0.746993,0.679435},{0.747993,0.680169},{0.748993,0.680901},{0.749992,0.681633},{0.750992,0.682365},{0.751992,0.683095},{0.752992,0.683825},{0.753992,0.684555},{0.754992,0.685283},{0.755992,0.686011},{0.756992,0.686738},{0.757992,0.687465},{0.758992,0.688191},{0.759992,0.688916},{0.760992,0.689640},{0.761992,0.690364},{0.762992,0.691087},{0.763992,0.691810},{0.764992,0.692531},{0.765992,0.693253},{0.766992,0.693973},{0.767992,0.694693},{0.768992,0.695411},{0.769992,0.696130},{0.770992,0.696847},{0.771992,0.697564},{0.772992,0.698280},{0.773992,0.698996},{0.774992,0.699711},{0.775992,0.700425},{0.776992,0.701138},{0.777992,0.701851},{0.778992,0.702563},{0.779992,0.703274},{0.780992,0.703984},{0.781992,0.704694},{0.782992,0.705403},{0.783992,0.706112},{0.784992,0.706820},{0.785992,0.707527},{0.786992,0.708233},{0.787992,0.708939},{0.788992,0.709644},{0.789992,0.710348},{0.790992,0.711051},{0.791992,0.711754},{0.792992,0.712456},{0.793992,0.713157},{0.794992,0.713858},{0.795992,0.714558},{0.796992,0.715257},{0.797992,0.715956},{0.798992,0.716653},{0.799992,0.717351}},
    {{0.800992,0.718047},{0.801992,0.718742},{0.802992,0.719437},{0.803992,0.720132},{0.804992,0.720825},{0.805992,0.721518},{0.806992,0.722210},{0.807992,0.722901},{0.808992,0.723592},{0.809992,0.724282},{0.810992,0.724971},{0.811992,0.725659},{0.812992,0.726347},{0.813992,0.727034},{0.814992,0.727720},{0.815992,0.728406},{0.816992,0.729090},{0.817992,0.729774},{0.818992,0.730458},{0.819992,0.731140},{0.820992,0.731822},{0.821992,0.732503},{0.822992,0.733184},{0.823992,0.733863},{0.824992,0.734542},{0.825992,0.735220},{0.826992,0.735898},{0.827992,0.736575},{0.828992,0.737251},{0.829992,0.737926},{0.830992,0.738600},{0.831992,0.739274},{0.832992,0.739947},{0.833992,0.740619},{0.834992,0.741291},{0.835992,0.741962},{0.836992,0.742632},{0.837992,0.743301},{0.838992,0.743970},{0.839992,0.744638},{0.840992,0.745305},{0.841992,0.745971},{0.842992,0.746637},{0.843992,0.747301},{0.844992,0.747966},{0.845992,0.748629},{0.846992,0.749291},{0.847992,0.749953},{0.848992,0.750614},{0.849991,0.751275},{0.850991,0.751934},{0.851991,0.752593},{0.852991,0.753251},{0.853991,0.753909},{0.854991,0.754565},{0.855991,0.755221},{0.856991,0.755876},{0.857991,0.756531},{0.858991,0.757184},{0.859991,0.757837},{0.860991,0.758489},{0.861991,0.759140},{0.862991,0.759791},{0.863991,0.760441},{0.864991,0.761090},{0.865991,0.761738},{0.866991,0.762385},{0.867991,0.763032},{0.868991,0.763678},{0.869991,0.764323},{0.870991,0.764968},{0.871991,0.765611},{0.872991,0.766254},{0.873991,0.766897},{0.874991,0.767538},{0.875991,0.768179},{0.876991,0.768818},{0.877991,0.769457},{0.878991,0.770096},{0.879991,0.770733},{0.880991,0.771370},{0.881991,0.772006},{0.882991,0.772641},{0.883991,0.773276},{0.884991,0.773909},{0.885991,0.774542},{0.886991,0.775174},{0.887991,0.775806},{0.888991,0.776436},{0.889991,0.777066},{0.890991,0.777695},{0.891991,0.778323},{0.892991,0.778951},{0.893991,0.779578},{0.894991,0.780203},{0.895991,0.780829},{0.896991,0.781453},{0.897991,0.782077},{0.898991,0.782699},{0.899991,0.783321}},
    {{0.900991,0.783943},{0.901991,0.784563},{0.902991,0.785183},{0.903991,0.785801},{0.904991,0.786420},{0.905991,0.787037},{0.906991,0.787653},{0.907991,0.788269},{0.908991,0.788884},{0.909991,0.789498},{0.910991,0.790112},{0.911991,0.790724},{0.912991,0.791336},{0.913991,0.791947},{0.914991,0.792557},{0.915991,0.793166},{0.916991,0.793775},{0.917991,0.794383},{0.918991,0.794990},{0.919991,0.795596},{0.920991,0.796201},{0.921991,0.796806},{0.922991,0.797410},{0.923991,0.798013},{0.924991,0.798615},{0.925991,0.799217},{0.926991,0.799817},{0.927991,0.800417},{0.928991,0.801016},{0.929991,0.801614},{0.930991,0.802212},{0.931991,0.802808},{0.932991,0.803404},{0.933991,0.803999},{0.934991,0.804594},{0.935991,0.805187},{0.936991,0.805780},{0.937991,0.806371},{0.938991,0.806962},{0.939991,0.807553},{0.940991,0.808142},{0.941991,0.808731},{0.942991,0.809318},{0.943991,0.809905},{0.944991,0.810491},{0.945991,0.811077},{0.946991,0.811661},{0.947991,0.812245},{0.948991,0.812828},{0.949990,0.813410},{0.950990,0.813991},{0.951990,0.814572},{0.952990,0.815151},{0.953990,0.815730},{0.954990,0.816308},{0.955990,0.816885},{0.956990,0.817462},{0.957990,0.818037},{0.958990,0.818612},{0.959990,0.819186},{0.960990,0.819759},{0.961990,0.820331},{0.962990,0.820903},{0.963990,0.821474},{0.964990,0.822043},{0.965990,0.822612},{0.966990,0.823181},{0.967990,0.823748},{0.968990,0.824315},{0.969990,0.824880},{0.970990,0.825445},{0.971990,0.826009},{0.972990,0.826572},{0.973990,0.827135},{0.974990,0.827696},{0.975990,0.828257},{0.976990,0.828817},{0.977990,0.829376},{0.978990,0.829934},{0.979990,0.830492},{0.980990,0.831049},{0.981990,0.831604},{0.982990,0.832159},{0.983990,0.832713},{0.984990,0.833267},{0.985990,0.833819},{0.986990,0.834371},{0.987990,0.834921},{0.988990,0.835471},{0.989990,0.836021},{0.990990,0.836569},{0.991990,0.837116},{0.992990,0.837663},{0.993990,0.838209},{0.994990,0.838754},{0.995990,0.839298},{0.996990,0.839841},{0.997990,0.840383},{0.998990,0.840925},{0.999990,0.841466}}
    },
    /* ----2--------------------------- */
    {
    {{1.000990,0.842005},{1.001990,0.842545},{1.002990,0.843083},{1.003990,0.843620},{1.004990,0.844157},{1.005990,0.844692},{1.006990,0.845227},{1.007990,0.845761},{1.008990,0.846294},{1.009990,0.846826},{1.010990,0.847358},{1.011990,0.847889},{1.012990,0.848418},{1.013990,0.848947},{1.014990,0.849475},{1.015990,0.850002},{1.016990,0.850529},{1.017990,0.851054},{1.018990,0.851579},{1.019990,0.852103},{1.020990,0.852626},{1.021990,0.853148},{1.022990,0.853669},{1.023990,0.854189},{1.024990,0.854709},{1.025990,0.855228},{1.026990,0.855745},{1.027990,0.856262},{1.028990,0.856778},{1.029990,0.857294},{1.030990,0.857808},{1.031990,0.858322},{1.032990,0.858834},{1.033990,0.859346},{1.034990,0.859857},{1.035990,0.860367},{1.036990,0.860876},{1.037990,0.861385},{1.038990,0.861892},{1.039990,0.862399},{1.040990,0.862905},{1.041990,0.863410},{1.042990,0.863914},{1.043990,0.864417},{1.044990,0.864919},{1.045990,0.865421},{1.046990,0.865921},{1.047990,0.866421},{1.048990,0.866920},{1.049989,0.867418},{1.050989,0.867915},{1.051989,0.868411},{1.052989,0.868907},{1.053989,0.869401},{1.054989,0.869895},{1.055989,0.870388},{1.056989,0.870880},{1.057989,0.871371},{1.058989,0.871861},{1.059989,0.872350},{1.060989,0.872839},{1.061989,0.873326},{1.062989,0.873813},{1.063989,0.874299},{1.064989,0.874784},{1.065989,0.875268},{1.066989,0.875751},{1.067989,0.876233},{1.068989,0.876715},{1.069989,0.877195},{1.070989,0.877675},{1.071989,0.878154},{1.072989,0.878632},{1.073989,0.879109},{1.074989,0.879585},{1.075989,0.880060},{1.076989,0.880535},{1.077989,0.881008},{1.078989,0.881481},{1.079989,0.881953},{1.080989,0.882424},{1.081989,0.882894},{1.082989,0.883363},{1.083989,0.883831},{1.084989,0.884298},{1.085989,0.884765},{1.086989,0.885230},{1.087989,0.885695},{1.088989,0.886159},{1.089989,0.886622},{1.090989,0.887084},{1.091989,0.887545},{1.092989,0.888005},{1.093989,0.888465},{1.094989,0.888923},{1.095989,0.889381},{1.096989,0.889838},{1.097989,0.890293},{1.098989,0.890748},{1.099989,0.891202}},
    {{1.100989,0.891656},{1.101989,0.892108},{1.102989,0.892559},{1.103989,0.893010},{1.104989,0.893459},{1.105989,0.893908},{1.106989,0.894356},{1.107989,0.894803},{1.108989,0.895249},{1.109989,0.895694},{1.110989,0.896138},{1.111989,0.896581},{1.112989,0.897024},{1.113989,0.897465},{1.114989,0.897906},{1.115989,0.898346},{1.116989,0.898784},{1.117989,0.899222},{1.118989,0.899659},{1.119989,0.900096},{1.120989,0.900531},{1.121989,0.900965},{1.122989,0.901399},{1.123989,0.901831},{1.124989,0.902263},{1.125989,0.902693},{1.126989,0.903123},{1.127989,0.903552},{1.128989,0.903980},{1.129989,0.904407},{1.130989,0.904834},{1.131989,0.905259},{1.132989,0.905683},{1.133989,0.906107},{1.134989,0.906529},{1.135989,0.906951},{1.136989,0.907372},{1.137989,0.907792},{1.138989,0.908211},{1.139989,0.908629},{1.140989,0.909046},{1.141989,0.909462},{1.142989,0.909877},{1.143989,0.910292},{1.144989,0.910705},{1.145989,0.911118},{1.146989,0.911530},{1.147989,0.911940},{1.148989,0.912350},{1.149988,0.912759},{1.150988,0.913167},{1.151988,0.913574},{1.152988,0.913981},{1.153988,0.914386},{1.154988,0.914790},{1.155988,0.915194},{1.156988,0.915596},{1.157988,0.915998},{1.158988,0.916399},{1.159988,0.916798},{1.160988,0.917197},{1.161988,0.917595},{1.162988,0.917992},{1.163988,0.918389},{1.164988,0.918784},{1.165988,0.919178},{1.166988,0.919571},{1.167988,0.919964},{1.168988,0.920355},{1.169988,0.920746},{1.170988,0.921136},{1.171988,0.921525},{1.172988,0.921912},{1.173988,0.922299},{1.174988,0.922685},{1.175988,0.923070},{1.176988,0.923455},{1.177988,0.923838},{1.178988,0.924220},{1.179988,0.924602},{1.180988,0.924982},{1.181988,0.925362},{1.182988,0.925740},{1.183988,0.926118},{1.184988,0.926495},{1.185988,0.926870},{1.186988,0.927245},{1.187988,0.927619},{1.188988,0.927992},{1.189988,0.928365},{1.190988,0.928736},{1.191988,0.929106},{1.192988,0.929475},{1.193988,0.929844},{1.194988,0.930211},{1.195988,0.930578},{1.196988,0.930943},{1.197988,0.931308},{1.198988,0.931672},{1.199988,0.932035}},
    {{1.200988,0.932397},{1.201988,0.932758},{1.202988,0.933118},{1.203988,0.933477},{1.204988,0.933835},{1.205988,0.934192},{1.206988,0.934548},{1.207988,0.934904},{1.208988,0.935258},{1.209988,0.935612},{1.210988,0.935964},{1.211988,0.936316},{1.212988,0.936667},{1.213988,0.937016},{1.214988,0.937365},{1.215988,0.937713},{1.216988,0.938060},{1.217988,0.938406},{1.218988,0.938751},{1.219988,0.939095},{1.220988,0.939438},{1.221988,0.939781},{1.222988,0.940122},{1.223988,0.940462},{1.224988,0.940802},{1.225988,0.941140},{1.226988,0.941478},{1.227988,0.941814},{1.228988,0.942150},{1.229988,0.942485},{1.230988,0.942818},{1.231988,0.943151},{1.232988,0.943483},{1.233988,0.943814},{1.234988,0.944144},{1.235988,0.944473},{1.236988,0.944801},{1.237988,0.945128},{1.238988,0.945455},{1.239988,0.945780},{1.240988,0.946104},{1.241988,0.946428},{1.242988,0.946750},{1.243988,0.947072},{1.244988,0.947392},{1.245988,0.947712},{1.246988,0.948030},{1.247988,0.948348},{1.248988,0.948665},{1.249987,0.948981},{1.250987,0.949296},{1.251987,0.949609},{1.252987,0.949922},{1.253987,0.950234},{1.254987,0.950545},{1.255987,0.950856},{1.256987,0.951165},{1.257987,0.951473},{1.258987,0.951780},{1.259987,0.952086},{1.260987,0.952392},{1.261987,0.952696},{1.262987,0.953000},{1.263987,0.953302},{1.264987,0.953604},{1.265987,0.953904},{1.266987,0.954204},{1.267987,0.954503},{1.268987,0.954800},{1.269987,0.955097},{1.270987,0.955393},{1.271987,0.955688},{1.272987,0.955982},{1.273987,0.956275},{1.274987,0.956567},{1.275987,0.956858},{1.276987,0.957148},{1.277987,0.957437},{1.278987,0.957725},{1.279987,0.958012},{1.280987,0.958298},{1.281987,0.958584},{1.282987,0.958868},{1.283987,0.959151},{1.284987,0.959434},{1.285987,0.959715},{1.286987,0.959996},{1.287987,0.960275},{1.288987,0.960554},{1.289987,0.960831},{1.290987,0.961108},{1.291987,0.961384},{1.292987,0.961659},{1.293987,0.961932},{1.294987,0.962205},{1.295987,0.962477},{1.296987,0.962748},{1.297987,0.963018},{1.298987,0.963287},{1.299987,0.963555}},
    {{1.300987,0.963822},{1.301987,0.964088},{1.302987,0.964353},{1.303987,0.964617},{1.304987,0.964880},{1.305987,0.965142},{1.306987,0.965404},{1.307987,0.965664},{1.308987,0.965923},{1.309987,0.966182},{1.310987,0.966439},{1.311987,0.966695},{1.312987,0.966951},{1.313987,0.967205},{1.314987,0.967459},{1.315987,0.967711},{1.316987,0.967963},{1.317987,0.968214},{1.318987,0.968463},{1.319987,0.968712},{1.320987,0.968960},{1.321987,0.969206},{1.322987,0.969452},{1.323987,0.969697},{1.324987,0.969941},{1.325987,0.970183},{1.326987,0.970425},{1.327987,0.970666},{1.328987,0.970906},{1.329987,0.971145},{1.330987,0.971383},{1.331987,0.971620},{1.332987,0.971856},{1.333987,0.972091},{1.334987,0.972325},{1.335987,0.972559},{1.336987,0.972791},{1.337987,0.973022},{1.338987,0.973252},{1.339987,0.973481},{1.340987,0.973710},{1.341987,0.973937},{1.342987,0.974163},{1.343987,0.974389},{1.344987,0.974613},{1.345987,0.974837},{1.346987,0.975059},{1.347987,0.975280},{1.348987,0.975501},{1.349986,0.975720},{1.350986,0.975939},{1.351986,0.976156},{1.352986,0.976373},{1.353986,0.976589},{1.354986,0.976803},{1.355986,0.977017},{1.356986,0.977230},{1.357986,0.977441},{1.358986,0.977652},{1.359986,0.977862},{1.360986,0.978071},{1.361986,0.978278},{1.362986,0.978485},{1.363986,0.978691},{1.364986,0.978896},{1.365986,0.979100},{1.366986,0.979303},{1.367986,0.979504},{1.368986,0.979705},{1.369986,0.979905},{1.370986,0.980104},{1.371986,0.980302},{1.372986,0.980499},{1.373986,0.980695},{1.374986,0.980890},{1.375986,0.981084},{1.376986,0.981278},{1.377986,0.981470},{1.378986,0.981661},{1.379986,0.981851},{1.380986,0.982040},{1.381986,0.982228},{1.382986,0.982415},{1.383986,0.982602},{1.384986,0.982787},{1.385986,0.982971},{1.386986,0.983154},{1.387986,0.983337},{1.388986,0.983518},{1.389986,0.983698},{1.390986,0.983878},{1.391986,0.984056},{1.392986,0.984233},{1.393986,0.984410},{1.394986,0.984585},{1.395986,0.984760},{1.396986,0.984933},{1.397986,0.985105},{1.398986,0.985277},{1.399986,0.985447}},
    {{1.400986,0.985617},{1.401986,0.985785},{1.402986,0.985953},{1.403986,0.986119},{1.404986,0.986285},{1.405986,0.986449},{1.406986,0.986613},{1.407986,0.986776},{1.408986,0.986937},{1.409986,0.987098},{1.410986,0.987257},{1.411986,0.987416},{1.412986,0.987574},{1.413986,0.987730},{1.414986,0.987886},{1.415986,0.988041},{1.416986,0.988194},{1.417986,0.988347},{1.418986,0.988499},{1.419986,0.988650},{1.420986,0.988799},{1.421986,0.988948},{1.422986,0.989096},{1.423986,0.989243},{1.424986,0.989388},{1.425986,0.989533},{1.426986,0.989677},{1.427986,0.989820},{1.428986,0.989962},{1.429986,0.990103},{1.430986,0.990242},{1.431986,0.990381},{1.432986,0.990519},{1.433986,0.990656},{1.434986,0.990792},{1.435986,0.990927},{1.436986,0.991061},{1.437986,0.991194},{1.438986,0.991326},{1.439986,0.991456},{1.440986,0.991586},{1.441986,0.991715},{1.442986,0.991843},{1.443986,0.991970},{1.444986,0.992096},{1.445986,0.992221},{1.446986,0.992345},{1.447986,0.992468},{1.448986,0.992590},{1.449985,0.992711},{1.450985,0.992831},{1.451985,0.992950},{1.452985,0.993068},{1.453985,0.993185},{1.454985,0.993301},{1.455985,0.993416},{1.456985,0.993531},{1.457985,0.993644},{1.458985,0.993756},{1.459985,0.993867},{1.460985,0.993977},{1.461985,0.994086},{1.462985,0.994194},{1.463985,0.994301},{1.464985,0.994407},{1.465985,0.994512},{1.466985,0.994616},{1.467985,0.994720},{1.468985,0.994822},{1.469985,0.994923},{1.470985,0.995023},{1.471985,0.995122},{1.472985,0.995220},{1.473985,0.995317},{1.474985,0.995414},{1.475985,0.995509},{1.476985,0.995603},{1.477985,0.995696},{1.478985,0.995788},{1.479985,0.995880},{1.480985,0.995970},{1.481985,0.996059},{1.482985,0.996147},{1.483985,0.996234},{1.484985,0.996320},{1.485985,0.996406},{1.486985,0.996490},{1.487985,0.996573},{1.488985,0.996655},{1.489985,0.996737},{1.490985,0.996817},{1.491985,0.996896},{1.492985,0.996974},{1.493985,0.997051},{1.494985,0.997128},{1.495985,0.997203},{1.496985,0.997277},{1.497985,0.997350},{1.498985,0.997423},{1.499985,0.997494}},
    {{1.500985,0.997564},{1.501985,0.997633},{1.502985,0.997702},{1.503985,0.997769},{1.504985,0.997835},{1.505985,0.997900},{1.506985,0.997965},{1.507985,0.998028},{1.508985,0.998090},{1.509985,0.998152},{1.510985,0.998212},{1.511985,0.998271},{1.512985,0.998329},{1.513985,0.998387},{1.514985,0.998443},{1.515985,0.998498},{1.516985,0.998553},{1.517985,0.998606},{1.518985,0.998658},{1.519985,0.998709},{1.520985,0.998760},{1.521985,0.998809},{1.522985,0.998857},{1.523985,0.998905},{1.524985,0.998951},{1.525985,0.998996},{1.526985,0.999040},{1.527985,0.999084},{1.528985,0.999126},{1.529985,0.999167},{1.530985,0.999208},{1.531985,0.999247},{1.532985,0.999285},{1.533985,0.999323},{1.534985,0.999359},{1.535985,0.999394},{1.536985,0.999428},{1.537985,0.999462},{1.538985,0.999494},{1.539985,0.999525},{1.540985,0.999556},{1.541985,0.999585},{1.542985,0.999613},{1.543985,0.999641},{1.544985,0.999667},{1.545985,0.999692},{1.546985,0.999717},{1.547985,0.999740},{1.548985,0.999762},{1.549984,0.999783},{1.550984,0.999804},{1.551984,0.999823},{1.552984,0.999841},{1.553984,0.999859},{1.554984,0.999875},{1.555984,0.999890},{1.556984,0.999905},{1.557984,0.999918},{1.558984,0.999930},{1.559984,0.999942},{1.560984,0.999952},{1.561984,0.999961},{1.562984,0.999969},{1.563984,0.999977},{1.564984,0.999983},{1.565984,0.999988},{1.566984,0.999993},{1.567984,0.999996},{1.568984,0.999998},{1.569984,1.000000},{1.570984,1.000000},{1.571984,0.999999},{1.572984,0.999998},{1.573984,0.999995},{1.574984,0.999991},{1.575984,0.999987},{1.576984,0.999981},{1.577984,0.999974},{1.578984,0.999966},{1.579984,0.999958},{1.580984,0.999948},{1.581984,0.999937},{1.582984,0.999926},{1.583984,0.999913},{1.584984,0.999899},{1.585984,0.999885},{1.586984,0.999869},{1.587984,0.999852},{1.588984,0.999835},{1.589984,0.999816},{1.590984,0.999796},{1.591984,0.999776},{1.592984,0.999754},{1.593984,0.999731},{1.594984,0.999707},{1.595984,0.999683},{1.596984,0.999657},{1.597984,0.999630},{1.598984,0.999603},{1.599984,0.999574}},
    {{1.600984,0.999544},{1.601984,0.999514},{1.602984,0.999482},{1.603984,0.999449},{1.604984,0.999416},{1.605984,0.999381},{1.606984,0.999345},{1.607984,0.999309},{1.608984,0.999271},{1.609984,0.999232},{1.610984,0.999193},{1.611984,0.999152},{1.612984,0.999110},{1.613984,0.999068},{1.614984,0.999024},{1.615984,0.998979},{1.616984,0.998934},{1.617984,0.998887},{1.618984,0.998839},{1.619984,0.998791},{1.620984,0.998741},{1.621984,0.998690},{1.622984,0.998639},{1.623984,0.998586},{1.624984,0.998532},{1.625984,0.998478},{1.626984,0.998422},{1.627984,0.998365},{1.628984,0.998308},{1.629984,0.998249},{1.630984,0.998189},{1.631984,0.998129},{1.632984,0.998067},{1.633984,0.998004},{1.634984,0.997941},{1.635984,0.997876},{1.636984,0.997810},{1.637984,0.997744},{1.638984,0.997676},{1.639984,0.997608},{1.640984,0.997538},{1.641984,0.997467},{1.642984,0.997396},{1.643984,0.997323},{1.644984,0.997249},{1.645984,0.997175},{1.646984,0.997099},{1.647984,0.997023},{1.648984,0.996945},{1.649983,0.996866},{1.650983,0.996787},{1.651983,0.996706},{1.652983,0.996625},{1.653983,0.996542},{1.654983,0.996458},{1.655983,0.996374},{1.656983,0.996288},{1.657983,0.996202},{1.658983,0.996114},{1.659983,0.996025},{1.660983,0.995936},{1.661983,0.995845},{1.662983,0.995754},{1.663983,0.995661},{1.664983,0.995568},{1.665983,0.995473},{1.666983,0.995378},{1.667983,0.995281},{1.668983,0.995184},{1.669983,0.995085},{1.670983,0.994985},{1.671983,0.994885},{1.672983,0.994783},{1.673983,0.994681},{1.674983,0.994577},{1.675983,0.994473},{1.676983,0.994367},{1.677983,0.994261},{1.678983,0.994154},{1.679983,0.994045},{1.680983,0.993936},{1.681983,0.993825},{1.682983,0.993714},{1.683983,0.993601},{1.684983,0.993488},{1.685983,0.993373},{1.686983,0.993258},{1.687983,0.993141},{1.688983,0.993024},{1.689983,0.992906},{1.690983,0.992786},{1.691983,0.992666},{1.692983,0.992544},{1.693983,0.992422},{1.694983,0.992299},{1.695983,0.992174},{1.696983,0.992049},{1.697983,0.991923},{1.698983,0.991795},{1.699983,0.991667}},
    {{1.700983,0.991538},{1.701983,0.991407},{1.702983,0.991276},{1.703983,0.991144},{1.704983,0.991010},{1.705983,0.990876},{1.706983,0.990741},{1.707983,0.990605},{1.708983,0.990467},{1.709983,0.990329},{1.710983,0.990190},{1.711983,0.990050},{1.712983,0.989909},{1.713983,0.989766},{1.714983,0.989623},{1.715983,0.989479},{1.716983,0.989334},{1.717983,0.989188},{1.718983,0.989040},{1.719983,0.988892},{1.720983,0.988743},{1.721983,0.988593},{1.722983,0.988442},{1.723983,0.988290},{1.724983,0.988137},{1.725983,0.987983},{1.726983,0.987828},{1.727983,0.987672},{1.728983,0.987515},{1.729983,0.987357},{1.730983,0.987198},{1.731983,0.987038},{1.732983,0.986877},{1.733983,0.986715},{1.734983,0.986552},{1.735983,0.986388},{1.736983,0.986223},{1.737983,0.986057},{1.738983,0.985890},{1.739983,0.985722},{1.740983,0.985553},{1.741983,0.985383},{1.742983,0.985213},{1.743983,0.985041},{1.744983,0.984868},{1.745983,0.984694},{1.746983,0.984519},{1.747983,0.984344},{1.748983,0.984167},{1.749982,0.983989},{1.750982,0.983810},{1.751982,0.983631},{1.752982,0.983450},{1.753982,0.983268},{1.754982,0.983086},{1.755982,0.982902},{1.756982,0.982717},{1.757982,0.982532},{1.758982,0.982345},{1.759982,0.982158},{1.760982,0.981969},{1.761982,0.981780},{1.762982,0.981589},{1.763982,0.981398},{1.764982,0.981205},{1.765982,0.981012},{1.766982,0.980817},{1.767982,0.980622},{1.768982,0.980425},{1.769982,0.980228},{1.770982,0.980030},{1.771982,0.979830},{1.772982,0.979630},{1.773982,0.979429},{1.774982,0.979226},{1.775982,0.979023},{1.776982,0.978819},{1.777982,0.978614},{1.778982,0.978407},{1.779982,0.978200},{1.780982,0.977992},{1.781982,0.977783},{1.782982,0.977573},{1.783982,0.977362},{1.784982,0.977150},{1.785982,0.976937},{1.786982,0.976723},{1.787982,0.976508},{1.788982,0.976292},{1.789982,0.976075},{1.790982,0.975857},{1.791982,0.975638},{1.792982,0.975418},{1.793982,0.975197},{1.794982,0.974975},{1.795982,0.974753},{1.796982,0.974529},{1.797982,0.974304},{1.798982,0.974078},{1.799982,0.973852}},
    {{1.800982,0.973624},{1.801982,0.973395},{1.802982,0.973166},{1.803982,0.972935},{1.804982,0.972704},{1.805982,0.972471},{1.806982,0.972238},{1.807982,0.972003},{1.808982,0.971768},{1.809982,0.971531},{1.810982,0.971294},{1.811982,0.971055},{1.812982,0.970816},{1.813982,0.970576},{1.814982,0.970335},{1.815982,0.970092},{1.816982,0.969849},{1.817982,0.969605},{1.818982,0.969360},{1.819982,0.969114},{1.820982,0.968867},{1.821982,0.968618},{1.822982,0.968369},{1.823982,0.968119},{1.824982,0.967868},{1.825982,0.967617},{1.826982,0.967364},{1.827982,0.967110},{1.828982,0.966855},{1.829982,0.966599},{1.830982,0.966342},{1.831982,0.966085},{1.832982,0.965826},{1.833982,0.965566},{1.834982,0.965306},{1.835982,0.965044},{1.836982,0.964781},{1.837982,0.964518},{1.838982,0.964253},{1.839982,0.963988},{1.840982,0.963721},{1.841982,0.963454},{1.842982,0.963186},{1.843982,0.962916},{1.844982,0.962646},{1.845982,0.962375},{1.846982,0.962103},{1.847982,0.961830},{1.848982,0.961555},{1.849981,0.961280},{1.850981,0.961004},{1.851981,0.960727},{1.852981,0.960449},{1.853981,0.960170},{1.854981,0.959890},{1.855981,0.959610},{1.856981,0.959328},{1.857981,0.959045},{1.858981,0.958761},{1.859981,0.958477},{1.860981,0.958191},{1.861981,0.957904},{1.862981,0.957617},{1.863981,0.957328},{1.864981,0.957039},{1.865981,0.956748},{1.866981,0.956457},{1.867981,0.956165},{1.868981,0.955871},{1.869981,0.955577},{1.870981,0.955282},{1.871981,0.954986},{1.872981,0.954689},{1.873981,0.954390},{1.874981,0.954091},{1.875981,0.953791},{1.876981,0.953490},{1.877981,0.953189},{1.878981,0.952886},{1.879981,0.952582},{1.880981,0.952277},{1.881981,0.951971},{1.882981,0.951665},{1.883981,0.951357},{1.884981,0.951049},{1.885981,0.950739},{1.886981,0.950429},{1.887981,0.950117},{1.888981,0.949805},{1.889981,0.949492},{1.890981,0.949177},{1.891981,0.948862},{1.892981,0.948546},{1.893981,0.948229},{1.894981,0.947911},{1.895981,0.947592},{1.896981,0.947272},{1.897981,0.946951},{1.898981,0.946629},{1.899981,0.946306}},
    {{1.900981,0.945982},{1.901981,0.945658},{1.902981,0.945332},{1.903981,0.945006},{1.904981,0.944678},{1.905981,0.944350},{1.906981,0.944020},{1.907981,0.943690},{1.908981,0.943359},{1.909981,0.943026},{1.910981,0.942693},{1.911981,0.942359},{1.912981,0.942024},{1.913981,0.941688},{1.914981,0.941351},{1.915981,0.941013},{1.916981,0.940674},{1.917981,0.940334},{1.918981,0.939994},{1.919981,0.939652},{1.920981,0.939309},{1.921981,0.938966},{1.922981,0.938621},{1.923981,0.938276},{1.924981,0.937930},{1.925981,0.937582},{1.926981,0.937234},{1.927981,0.936885},{1.928981,0.936535},{1.929981,0.936184},{1.930981,0.935832},{1.931981,0.935479},{1.932981,0.935125},{1.933981,0.934770},{1.934981,0.934415},{1.935981,0.934058},{1.936981,0.933700},{1.937981,0.933342},{1.938981,0.932982},{1.939981,0.932622},{1.940981,0.932261},{1.941981,0.931898},{1.942981,0.931535},{1.943981,0.931171},{1.944981,0.930806},{1.945981,0.930440},{1.946981,0.930073},{1.947981,0.929705},{1.948981,0.929337},{1.949980,0.928967},{1.950980,0.928596},{1.951980,0.928225},{1.952980,0.927852},{1.953980,0.927479},{1.954980,0.927105},{1.955980,0.926729},{1.956980,0.926353},{1.957980,0.925976},{1.958980,0.925598},{1.959980,0.925219},{1.960980,0.924839},{1.961980,0.924458},{1.962980,0.924077},{1.963980,0.923694},{1.964980,0.923310},{1.965980,0.922926},{1.966980,0.922540},{1.967980,0.922154},{1.968980,0.921767},{1.969980,0.921378},{1.970980,0.920989},{1.971980,0.920599},{1.972980,0.920208},{1.973980,0.919816},{1.974980,0.919424},{1.975980,0.919030},{1.976980,0.918635},{1.977980,0.918240},{1.978980,0.917843},{1.979980,0.917446},{1.980980,0.917048},{1.981980,0.916648},{1.982980,0.916248},{1.983980,0.915847},{1.984980,0.915445},{1.985980,0.915042},{1.986980,0.914638},{1.987980,0.914234},{1.988980,0.913828},{1.989980,0.913421},{1.990980,0.913014},{1.991980,0.912606},{1.992980,0.912196},{1.993980,0.911786},{1.994980,0.911375},{1.995980,0.910963},{1.996980,0.910550},{1.997980,0.910136},{1.998980,0.909721},{1.999980,0.909306}}
    },
    /* ----3--------------------------- */
    {
    {{2.000980,0.908889},{2.001980,0.908472},{2.002980,0.908053},{2.003980,0.907634},{2.004980,0.907214},{2.005980,0.906793},{2.006980,0.906371},{2.007980,0.905948},{2.008980,0.905524},{2.009980,0.905099},{2.010980,0.904673},{2.011980,0.904247},{2.012980,0.903819},{2.013980,0.903391},{2.014980,0.902962},{2.015980,0.902532},{2.016980,0.902101},{2.017980,0.901669},{2.018980,0.901236},{2.019980,0.900802},{2.020980,0.900367},{2.021980,0.899932},{2.022980,0.899495},{2.023980,0.899058},{2.024980,0.898620},{2.025980,0.898180},{2.026980,0.897740},{2.027980,0.897299},{2.028980,0.896858},{2.029980,0.896415},{2.030980,0.895971},{2.031980,0.895527},{2.032980,0.895081},{2.033980,0.894635},{2.034980,0.894187},{2.035980,0.893739},{2.036980,0.893290},{2.037980,0.892840},{2.038980,0.892390},{2.039980,0.891938},{2.040980,0.891485},{2.041980,0.891032},{2.042980,0.890577},{2.043980,0.890122},{2.044980,0.889666},{2.045980,0.889209},{2.046980,0.888751},{2.047980,0.888292},{2.048980,0.887832},{2.049979,0.887372},{2.050979,0.886910},{2.051979,0.886448},{2.052979,0.885985},{2.053979,0.885521},{2.054979,0.885055},{2.055979,0.884590},{2.056979,0.884123},{2.057979,0.883655},{2.058979,0.883186},{2.059979,0.882717},{2.060979,0.882247},{2.061979,0.881775},{2.062979,0.881303},{2.063979,0.880830},{2.064979,0.880357},{2.065979,0.879882},{2.066979,0.879406},{2.067979,0.878930},{2.068979,0.878452},{2.069979,0.877974},{2.070979,0.877495},{2.071979,0.877015},{2.072979,0.876534},{2.073979,0.876052},{2.074979,0.875569},{2.075979,0.875086},{2.076979,0.874602},{2.077979,0.874116},{2.078979,0.873630},{2.079979,0.873143},{2.080979,0.872655},{2.081979,0.872166},{2.082979,0.871677},{2.083979,0.871186},{2.084979,0.870695},{2.085979,0.870203},{2.086979,0.869710},{2.087979,0.869216},{2.088979,0.868721},{2.089979,0.868225},{2.090979,0.867728},{2.091979,0.867231},{2.092979,0.866733},{2.093979,0.866233},{2.094979,0.865733},{2.095979,0.865232},{2.096979,0.864731},{2.097979,0.864228},{2.098979,0.863724},{2.099979,0.863220}},
    {{2.100979,0.862715},{2.101979,0.862209},{2.102979,0.861702},{2.103979,0.861194},{2.104979,0.860685},{2.105979,0.860176},{2.106979,0.859665},{2.107979,0.859154},{2.108979,0.858642},{2.109979,0.858129},{2.110979,0.857615},{2.111979,0.857100},{2.112979,0.856585},{2.113979,0.856068},{2.114979,0.855551},{2.115979,0.855033},{2.116979,0.854514},{2.117979,0.853994},{2.118979,0.853473},{2.119979,0.852952},{2.120979,0.852429},{2.121979,0.851906},{2.122979,0.851382},{2.123979,0.850857},{2.124979,0.850331},{2.125979,0.849804},{2.126979,0.849277},{2.127979,0.848748},{2.128979,0.848219},{2.129979,0.847689},{2.130979,0.847158},{2.131979,0.846626},{2.132979,0.846094},{2.133979,0.845560},{2.134979,0.845026},{2.135979,0.844491},{2.136979,0.843955},{2.137979,0.843418},{2.138979,0.842880},{2.139979,0.842342},{2.140979,0.841803},{2.141979,0.841262},{2.142979,0.840721},{2.143979,0.840179},{2.144979,0.839637},{2.145979,0.839093},{2.146979,0.838549},{2.147979,0.838004},{2.148979,0.837457},{2.149978,0.836911},{2.150978,0.836363},{2.151978,0.835814},{2.152978,0.835265},{2.153978,0.834715},{2.154978,0.834163},{2.155978,0.833612},{2.156978,0.833059},{2.157978,0.832505},{2.158978,0.831951},{2.159978,0.831395},{2.160978,0.830839},{2.161978,0.830282},{2.162978,0.829725},{2.163978,0.829166},{2.164978,0.828607},{2.165978,0.828046},{2.166978,0.827485},{2.167978,0.826924},{2.168978,0.826361},{2.169978,0.825797},{2.170978,0.825233},{2.171978,0.824668},{2.172978,0.824102},{2.173978,0.823535},{2.174978,0.822967},{2.175978,0.822399},{2.176978,0.821829},{2.177978,0.821259},{2.178978,0.820688},{2.179978,0.820116},{2.180978,0.819544},{2.181978,0.818970},{2.182978,0.818396},{2.183978,0.817821},{2.184978,0.817245},{2.185978,0.816669},{2.186978,0.816091},{2.187978,0.815513},{2.188978,0.814934},{2.189978,0.814354},{2.190978,0.813773},{2.191978,0.813191},{2.192978,0.812609},{2.193978,0.812026},{2.194978,0.811442},{2.195978,0.810857},{2.196978,0.810271},{2.197978,0.809685},{2.198978,0.809097},{2.199978,0.808509}},
    {{2.200978,0.807920},{2.201978,0.807331},{2.202978,0.806740},{2.203978,0.806149},{2.204978,0.805557},{2.205978,0.804964},{2.206978,0.804370},{2.207978,0.803776},{2.208978,0.803180},{2.209978,0.802584},{2.210978,0.801987},{2.211978,0.801390},{2.212978,0.800791},{2.213978,0.800192},{2.214978,0.799592},{2.215978,0.798991},{2.216978,0.798389},{2.217978,0.797786},{2.218978,0.797183},{2.219978,0.796579},{2.220978,0.795974},{2.221978,0.795368},{2.222978,0.794762},{2.223978,0.794154},{2.224978,0.793546},{2.225978,0.792937},{2.226978,0.792328},{2.227978,0.791717},{2.228978,0.791106},{2.229978,0.790494},{2.230978,0.789881},{2.231978,0.789267},{2.232978,0.788653},{2.233978,0.788038},{2.234978,0.787422},{2.235978,0.786805},{2.236978,0.786187},{2.237978,0.785569},{2.238978,0.784950},{2.239978,0.784330},{2.240978,0.783709},{2.241978,0.783088},{2.242978,0.782465},{2.243978,0.781842},{2.244978,0.781218},{2.245978,0.780594},{2.246978,0.779968},{2.247978,0.779342},{2.248978,0.778715},{2.249977,0.778087},{2.250977,0.777459},{2.251977,0.776829},{2.252977,0.776199},{2.253977,0.775569},{2.254977,0.774937},{2.255977,0.774304},{2.256977,0.773671},{2.257977,0.773037},{2.258977,0.772403},{2.259977,0.771767},{2.260977,0.771131},{2.261977,0.770494},{2.262977,0.769856},{2.263977,0.769217},{2.264977,0.768578},{2.265977,0.767938},{2.266977,0.767297},{2.267977,0.766655},{2.268977,0.766013},{2.269977,0.765370},{2.270977,0.764726},{2.271977,0.764081},{2.272977,0.763435},{2.273977,0.762789},{2.274977,0.762142},{2.275977,0.761494},{2.276977,0.760846},{2.277977,0.760196},{2.278977,0.759546},{2.279977,0.758896},{2.280977,0.758244},{2.281977,0.757592},{2.282977,0.756939},{2.283977,0.756285},{2.284977,0.755630},{2.285977,0.754975},{2.286977,0.754319},{2.287977,0.753662},{2.288977,0.753004},{2.289977,0.752346},{2.290977,0.751687},{2.291977,0.751027},{2.292977,0.750366},{2.293977,0.749705},{2.294977,0.749042},{2.295977,0.748380},{2.296977,0.747716},{2.297977,0.747052},{2.298977,0.746386},{2.299977,0.745721}},
    {{2.300977,0.745054},{2.301977,0.744387},{2.302977,0.743718},{2.303977,0.743050},{2.304977,0.742380},{2.305977,0.741710},{2.306977,0.741039},{2.307977,0.740367},{2.308977,0.739694},{2.309977,0.739021},{2.310977,0.738347},{2.311977,0.737672},{2.312977,0.736996},{2.313977,0.736320},{2.314977,0.735643},{2.315977,0.734966},{2.316977,0.734287},{2.317977,0.733608},{2.318977,0.732928},{2.319977,0.732247},{2.320977,0.731566},{2.321977,0.730884},{2.322977,0.730201},{2.323977,0.729517},{2.324977,0.728833},{2.325977,0.728148},{2.326977,0.727462},{2.327977,0.726776},{2.328977,0.726088},{2.329977,0.725400},{2.330977,0.724712},{2.331977,0.724022},{2.332977,0.723332},{2.333977,0.722641},{2.334977,0.721950},{2.335977,0.721257},{2.336977,0.720564},{2.337977,0.719871},{2.338977,0.719176},{2.339977,0.718481},{2.340977,0.717785},{2.341977,0.717089},{2.342977,0.716391},{2.343977,0.715693},{2.344977,0.714994},{2.345977,0.714295},{2.346977,0.713595},{2.347977,0.712894},{2.348977,0.712192},{2.349976,0.711490},{2.350976,0.710787},{2.351976,0.710083},{2.352976,0.709379},{2.353976,0.708673},{2.354976,0.707968},{2.355976,0.707261},{2.356976,0.706554},{2.357976,0.705846},{2.358976,0.705137},{2.359976,0.704428},{2.360976,0.703717},{2.361976,0.703007},{2.362976,0.702295},{2.363976,0.701583},{2.364976,0.700870},{2.365976,0.700156},{2.366976,0.699442},{2.367976,0.698727},{2.368976,0.698011},{2.369976,0.697295},{2.370976,0.696578},{2.371976,0.695860},{2.372976,0.695141},{2.373976,0.694422},{2.374976,0.693702},{2.375976,0.692982},{2.376976,0.692260},{2.377976,0.691538},{2.378976,0.690816},{2.379976,0.690092},{2.380976,0.689368},{2.381976,0.688643},{2.382976,0.687918},{2.383976,0.687192},{2.384976,0.686465},{2.385976,0.685738},{2.386976,0.685009},{2.387976,0.684280},{2.388976,0.683551},{2.389976,0.682821},{2.390976,0.682090},{2.391976,0.681358},{2.392976,0.680626},{2.393976,0.679893},{2.394976,0.679159},{2.395976,0.678425},{2.396976,0.677690},{2.397976,0.676954},{2.398976,0.676218},{2.399976,0.675481}},
    {{2.400976,0.674743},{2.401976,0.674005},{2.402976,0.673266},{2.403976,0.672526},{2.404976,0.671786},{2.405976,0.671045},{2.406976,0.670303},{2.407976,0.669560},{2.408976,0.668817},{2.409976,0.668074},{2.410976,0.667329},{2.411976,0.666584},{2.412976,0.665838},{2.413976,0.665092},{2.414976,0.664345},{2.415976,0.663597},{2.416976,0.662849},{2.417976,0.662100},{2.418976,0.661350},{2.419976,0.660599},{2.420976,0.659848},{2.421976,0.659097},{2.422976,0.658344},{2.423976,0.657591},{2.424976,0.656837},{2.425976,0.656083},{2.426976,0.655328},{2.427976,0.654572},{2.428976,0.653816},{2.429976,0.653059},{2.430976,0.652302},{2.431976,0.651543},{2.432976,0.650784},{2.433976,0.650025},{2.434976,0.649265},{2.435976,0.648504},{2.436976,0.647742},{2.437976,0.646980},{2.438976,0.646217},{2.439976,0.645454},{2.440976,0.644690},{2.441976,0.643925},{2.442976,0.643159},{2.443976,0.642393},{2.444976,0.641627},{2.445976,0.640859},{2.446976,0.640091},{2.447976,0.639323},{2.448976,0.638553},{2.449975,0.637784},{2.450975,0.637013},{2.451975,0.636242},{2.452975,0.635470},{2.453975,0.634698},{2.454975,0.633925},{2.455975,0.633151},{2.456975,0.632377},{2.457975,0.631602},{2.458975,0.630826},{2.459975,0.630050},{2.460975,0.629273},{2.461975,0.628495},{2.462975,0.627717},{2.463975,0.626939},{2.464975,0.626159},{2.465975,0.625379},{2.466975,0.624599},{2.467975,0.623817},{2.468975,0.623035},{2.469975,0.622253},{2.470975,0.621470},{2.471975,0.620686},{2.472975,0.619902},{2.473975,0.619117},{2.474975,0.618331},{2.475975,0.617545},{2.476975,0.616758},{2.477975,0.615971},{2.478975,0.615183},{2.479975,0.614394},{2.480975,0.613605},{2.481975,0.612815},{2.482975,0.612024},{2.483975,0.611233},{2.484975,0.610441},{2.485975,0.609649},{2.486975,0.608856},{2.487975,0.608062},{2.488975,0.607268},{2.489975,0.606473},{2.490975,0.605678},{2.491975,0.604882},{2.492975,0.604085},{2.493975,0.603288},{2.494975,0.602490},{2.495975,0.601692},{2.496975,0.600893},{2.497975,0.600093},{2.498975,0.599293},{2.499975,0.598492}},
    {{2.500975,0.597691},{2.501975,0.596889},{2.502975,0.596086},{2.503975,0.595283},{2.504975,0.594479},{2.505975,0.593675},{2.506975,0.592870},{2.507975,0.592064},{2.508975,0.591258},{2.509975,0.590451},{2.510975,0.589644},{2.511975,0.588836},{2.512975,0.588027},{2.513975,0.587218},{2.514975,0.586408},{2.515975,0.585598},{2.516975,0.584787},{2.517975,0.583976},{2.518975,0.583164},{2.519975,0.582351},{2.520975,0.581538},{2.521975,0.580724},{2.522975,0.579910},{2.523975,0.579095},{2.524975,0.578279},{2.525975,0.577463},{2.526975,0.576646},{2.527975,0.575829},{2.528975,0.575011},{2.529975,0.574193},{2.530975,0.573374},{2.531975,0.572554},{2.532975,0.571734},{2.533975,0.570913},{2.534975,0.570092},{2.535975,0.569270},{2.536975,0.568448},{2.537975,0.567625},{2.538975,0.566801},{2.539975,0.565977},{2.540975,0.565152},{2.541975,0.564327},{2.542975,0.563501},{2.543975,0.562675},{2.544975,0.561848},{2.545975,0.561021},{2.546975,0.560192},{2.547975,0.559364},{2.548975,0.558535},{2.549974,0.557705},{2.550974,0.556875},{2.551974,0.556044},{2.552974,0.555212},{2.553974,0.554380},{2.554974,0.553548},{2.555974,0.552715},{2.556974,0.551881},{2.557974,0.551047},{2.558974,0.550212},{2.559974,0.549377},{2.560974,0.548541},{2.561974,0.547705},{2.562974,0.546868},{2.563974,0.546030},{2.564974,0.545192},{2.565974,0.544354},{2.566974,0.543514},{2.567974,0.542675},{2.568974,0.541835},{2.569974,0.540994},{2.570974,0.540153},{2.571974,0.539311},{2.572974,0.538468},{2.573974,0.537625},{2.574974,0.536782},{2.575974,0.535938},{2.576974,0.535094},{2.577974,0.534248},{2.578974,0.533403},{2.579974,0.532557},{2.580974,0.531710},{2.581974,0.530863},{2.582974,0.530015},{2.583974,0.529167},{2.584974,0.528318},{2.585974,0.527469},{2.586974,0.526619},{2.587974,0.525769},{2.588974,0.524918},{2.589974,0.524066},{2.590974,0.523214},{2.591974,0.522362},{2.592974,0.521509},{2.593974,0.520656},{2.594974,0.519802},{2.595974,0.518947},{2.596974,0.518092},{2.597974,0.517236},{2.598974,0.516380},{2.599974,0.515524}},
    {{2.600974,0.514667},{2.601974,0.513809},{2.602974,0.512951},{2.603974,0.512092},{2.604974,0.511233},{2.605974,0.510373},{2.606974,0.509513},{2.607974,0.508652},{2.608974,0.507791},{2.609974,0.506929},{2.610974,0.506067},{2.611974,0.505204},{2.612974,0.504341},{2.613974,0.503477},{2.614974,0.502613},{2.615974,0.501748},{2.616974,0.500883},{2.617974,0.500017},{2.618974,0.499151},{2.619974,0.498284},{2.620974,0.497417},{2.621974,0.496549},{2.622974,0.495681},{2.623974,0.494812},{2.624974,0.493943},{2.625974,0.493073},{2.626974,0.492203},{2.627974,0.491332},{2.628974,0.490461},{2.629974,0.489590},{2.630974,0.488717},{2.631974,0.487845},{2.632974,0.486972},{2.633974,0.486098},{2.634974,0.485224},{2.635974,0.484349},{2.636974,0.483474},{2.637974,0.482598},{2.638974,0.481722},{2.639974,0.480846},{2.640974,0.479969},{2.641974,0.479091},{2.642974,0.478213},{2.643974,0.477335},{2.644974,0.476456},{2.645974,0.475576},{2.646974,0.474696},{2.647974,0.473816},{2.648974,0.472935},{2.649973,0.472054},{2.650973,0.471172},{2.651973,0.470290},{2.652973,0.469407},{2.653973,0.468524},{2.654973,0.467640},{2.655973,0.466756},{2.656973,0.465871},{2.657973,0.464986},{2.658973,0.464101},{2.659973,0.463215},{2.660973,0.462328},{2.661973,0.461441},{2.662973,0.460554},{2.663973,0.459666},{2.664973,0.458778},{2.665973,0.457889},{2.666973,0.457000},{2.667973,0.456110},{2.668973,0.455220},{2.669973,0.454329},{2.670973,0.453438},{2.671973,0.452547},{2.672973,0.451655},{2.673973,0.450763},{2.674973,0.449870},{2.675973,0.448976},{2.676973,0.448083},{2.677973,0.447188},{2.678973,0.446294},{2.679973,0.445399},{2.680973,0.444503},{2.681973,0.443607},{2.682973,0.442711},{2.683973,0.441814},{2.684973,0.440916},{2.685973,0.440019},{2.686973,0.439121},{2.687973,0.438222},{2.688973,0.437323},{2.689973,0.436423},{2.690973,0.435523},{2.691973,0.434623},{2.692973,0.433722},{2.693973,0.432821},{2.694973,0.431919},{2.695973,0.431017},{2.696973,0.430115},{2.697973,0.429212},{2.698973,0.428308},{2.699973,0.427404}},
    {{2.700973,0.426500},{2.701973,0.425595},{2.702973,0.424690},{2.703973,0.423785},{2.704973,0.422879},{2.705973,0.421972},{2.706973,0.421066},{2.707973,0.420158},{2.708973,0.419251},{2.709973,0.418343},{2.710973,0.417434},{2.711973,0.416525},{2.712973,0.415616},{2.713973,0.414706},{2.714973,0.413796},{2.715973,0.412885},{2.716973,0.411974},{2.717973,0.411063},{2.718973,0.410151},{2.719973,0.409239},{2.720973,0.408326},{2.721973,0.407413},{2.722973,0.406500},{2.723973,0.405586},{2.724973,0.404672},{2.725973,0.403757},{2.726973,0.402842},{2.727973,0.401927},{2.728973,0.401011},{2.729973,0.400094},{2.730973,0.399178},{2.731973,0.398261},{2.732973,0.397343},{2.733973,0.396425},{2.734973,0.395507},{2.735973,0.394589},{2.736973,0.393669},{2.737973,0.392750},{2.738973,0.391830},{2.739973,0.390910},{2.740973,0.389989},{2.741973,0.389068},{2.742973,0.388147},{2.743973,0.387225},{2.744973,0.386303},{2.745973,0.385380},{2.746973,0.384458},{2.747973,0.383534},{2.748973,0.382611},{2.749972,0.381686},{2.750972,0.380762},{2.751972,0.379837},{2.752972,0.378912},{2.753972,0.377986},{2.754972,0.377060},{2.755972,0.376134},{2.756972,0.375207},{2.757972,0.374280},{2.758972,0.373353},{2.759972,0.372425},{2.760972,0.371496},{2.761972,0.370568},{2.762972,0.369639},{2.763972,0.368709},{2.764972,0.367780},{2.765972,0.366850},{2.766972,0.365919},{2.767972,0.364988},{2.768972,0.364057},{2.769972,0.363126},{2.770972,0.362194},{2.771972,0.361261},{2.772972,0.360329},{2.773972,0.359396},{2.774972,0.358462},{2.775972,0.357529},{2.776972,0.356595},{2.777972,0.355660},{2.778972,0.354725},{2.779972,0.353790},{2.780972,0.352855},{2.781972,0.351919},{2.782972,0.350983},{2.783972,0.350046},{2.784972,0.349109},{2.785972,0.348172},{2.786972,0.347235},{2.787972,0.346297},{2.788972,0.345358},{2.789972,0.344420},{2.790972,0.343481},{2.791972,0.342541},{2.792972,0.341602},{2.793972,0.340662},{2.794972,0.339721},{2.795972,0.338781},{2.796972,0.337840},{2.797972,0.336898},{2.798972,0.335957},{2.799972,0.335015}},
    {{2.800972,0.334072},{2.801972,0.333129},{2.802972,0.332186},{2.803972,0.331243},{2.804972,0.330299},{2.805972,0.329355},{2.806972,0.328411},{2.807972,0.327466},{2.808972,0.326521},{2.809972,0.325576},{2.810972,0.324630},{2.811972,0.323684},{2.812972,0.322738},{2.813972,0.321791},{2.814972,0.320844},{2.815972,0.319897},{2.816972,0.318949},{2.817972,0.318002},{2.818972,0.317053},{2.819972,0.316105},{2.820972,0.315156},{2.821972,0.314207},{2.822972,0.313257},{2.823972,0.312307},{2.824972,0.311357},{2.825972,0.310407},{2.826972,0.309456},{2.827972,0.308505},{2.828972,0.307554},{2.829972,0.306602},{2.830972,0.305650},{2.831972,0.304698},{2.832972,0.303745},{2.833972,0.302792},{2.834972,0.301839},{2.835972,0.300885},{2.836972,0.299932},{2.837972,0.298978},{2.838972,0.298023},{2.839972,0.297068},{2.840972,0.296113},{2.841972,0.295158},{2.842972,0.294203},{2.843972,0.293247},{2.844972,0.292291},{2.845972,0.291334},{2.846972,0.290377},{2.847972,0.289420},{2.848972,0.288463},{2.849971,0.287505},{2.850971,0.286547},{2.851971,0.285589},{2.852971,0.284631},{2.853971,0.283672},{2.854971,0.282713},{2.855971,0.281754},{2.856971,0.280794},{2.857971,0.279834},{2.858971,0.278874},{2.859971,0.277913},{2.860971,0.276953},{2.861971,0.275992},{2.862971,0.275030},{2.863971,0.274069},{2.864971,0.273107},{2.865971,0.272145},{2.866971,0.271182},{2.867971,0.270220},{2.868971,0.269257},{2.869971,0.268294},{2.870971,0.267330},{2.871971,0.266367},{2.872971,0.265403},{2.873971,0.264438},{2.874971,0.263474},{2.875971,0.262509},{2.876971,0.261544},{2.877971,0.260579},{2.878971,0.259613},{2.879971,0.258647},{2.880971,0.257681},{2.881971,0.256715},{2.882971,0.255748},{2.883971,0.254781},{2.884971,0.253814},{2.885971,0.252847},{2.886971,0.251879},{2.887971,0.250911},{2.888971,0.249943},{2.889971,0.248975},{2.890971,0.248006},{2.891971,0.247037},{2.892971,0.246068},{2.893971,0.245099},{2.894971,0.244129},{2.895971,0.243159},{2.896971,0.242189},{2.897971,0.241219},{2.898971,0.240248},{2.899971,0.239277}},
    {{2.900971,0.238306},{2.901971,0.237335},{2.902971,0.236364},{2.903971,0.235392},{2.904971,0.234420},{2.905971,0.233448},{2.906971,0.232475},{2.907971,0.231502},{2.908971,0.230529},{2.909971,0.229556},{2.910971,0.228583},{2.911971,0.227609},{2.912971,0.226635},{2.913971,0.225661},{2.914971,0.224687},{2.915971,0.223712},{2.916971,0.222738},{2.917971,0.221763},{2.918971,0.220788},{2.919971,0.219812},{2.920971,0.218836},{2.921971,0.217861},{2.922971,0.216885},{2.923971,0.215908},{2.924971,0.214932},{2.925971,0.213955},{2.926971,0.212978},{2.927971,0.212001},{2.928971,0.211024},{2.929971,0.210046},{2.930971,0.209068},{2.931971,0.208090},{2.932971,0.207112},{2.933971,0.206134},{2.934971,0.205155},{2.935971,0.204176},{2.936971,0.203197},{2.937971,0.202218},{2.938971,0.201238},{2.939971,0.200259},{2.940971,0.199279},{2.941971,0.198299},{2.942971,0.197319},{2.943971,0.196338},{2.944971,0.195358},{2.945971,0.194377},{2.946971,0.193396},{2.947971,0.192415},{2.948971,0.191433},{2.949970,0.190452},{2.950970,0.189470},{2.951970,0.188488},{2.952970,0.187506},{2.953970,0.186523},{2.954970,0.185541},{2.955970,0.184558},{2.956970,0.183575},{2.957970,0.182592},{2.958970,0.181609},{2.959970,0.180625},{2.960970,0.179642},{2.961970,0.178658},{2.962970,0.177674},{2.963970,0.176690},{2.964970,0.175705},{2.965970,0.174721},{2.966970,0.173736},{2.967970,0.172751},{2.968970,0.171766},{2.969970,0.170781},{2.970970,0.169796},{2.971970,0.168810},{2.972970,0.167824},{2.973970,0.166839},{2.974970,0.165852},{2.975970,0.164866},{2.976970,0.163880},{2.977970,0.162893},{2.978970,0.161907},{2.979970,0.160920},{2.980970,0.159933},{2.981970,0.158945},{2.982970,0.157958},{2.983970,0.156971},{2.984970,0.155983},{2.985970,0.154995},{2.986970,0.154007},{2.987970,0.153019},{2.988970,0.152031},{2.989970,0.151042},{2.990970,0.150054},{2.991970,0.149065},{2.992970,0.148076},{2.993970,0.147087},{2.994970,0.146098},{2.995970,0.145108},{2.996970,0.144119},{2.997970,0.143129},{2.998970,0.142140},{2.999970,0.141150}}
    },
    /* ----4--------------------------- */
    {
    {{3.000970,0.140160},{3.001970,0.139169},{3.002970,0.138179},{3.003970,0.137189},{3.004970,0.136198},{3.005970,0.135207},{3.006970,0.134216},{3.007970,0.133225},{3.008970,0.132234},{3.009970,0.131243},{3.010970,0.130252},{3.011970,0.129260},{3.012970,0.128268},{3.013970,0.127277},{3.014970,0.126285},{3.015970,0.125293},{3.016970,0.124300},{3.017970,0.123308},{3.018970,0.122316},{3.019970,0.121323},{3.020970,0.120331},{3.021970,0.119338},{3.022970,0.118345},{3.023970,0.117352},{3.024970,0.116359},{3.025970,0.115365},{3.026970,0.114372},{3.027970,0.113379},{3.028970,0.112385},{3.029970,0.111391},{3.030970,0.110397},{3.031970,0.109404},{3.032970,0.108410},{3.033970,0.107415},{3.034970,0.106421},{3.035970,0.105427},{3.036970,0.104432},{3.037970,0.103438},{3.038970,0.102443},{3.039970,0.101448},{3.040970,0.100453},{3.041970,0.099458},{3.042970,0.098463},{3.043970,0.097468},{3.044970,0.096473},{3.045970,0.095477},{3.046970,0.094482},{3.047970,0.093486},{3.048970,0.092491},{3.049969,0.091495},{3.050969,0.090499},{3.051969,0.089503},{3.052969,0.088507},{3.053969,0.087511},{3.054969,0.086515},{3.055969,0.085519},{3.056969,0.084522},{3.057969,0.083526},{3.058969,0.082529},{3.059969,0.081533},{3.060969,0.080536},{3.061969,0.079539},{3.062969,0.078542},{3.063969,0.077545},{3.064969,0.076548},{3.065969,0.075551},{3.066969,0.074554},{3.067969,0.073557},{3.068969,0.072560},{3.069969,0.071562},{3.070969,0.070565},{3.071969,0.069567},{3.072969,0.068570},{3.073969,0.067572},{3.074969,0.066574},{3.075969,0.065576},{3.076969,0.064578},{3.077969,0.063581},{3.078969,0.062583},{3.079969,0.061584},{3.080969,0.060586},{3.081969,0.059588},{3.082969,0.058590},{3.083969,0.057592},{3.084969,0.056593},{3.085969,0.055595},{3.086969,0.054596},{3.087969,0.053598},{3.088969,0.052599},{3.089969,0.051601},{3.090969,0.050602},{3.091969,0.049603},{3.092969,0.048604},{3.093969,0.047606},{3.094969,0.046607},{3.095969,0.045608},{3.096969,0.044609},{3.097969,0.043610},{3.098969,0.042611},{3.099969,0.041612}},
    {{3.100969,0.040612},{3.101969,0.039613},{3.102969,0.038614},{3.103969,0.037615},{3.104969,0.036616},{3.105969,0.035616},{3.106969,0.034617},{3.107969,0.033617},{3.108969,0.032618},{3.109969,0.031618},{3.110969,0.030619},{3.111969,0.029619},{3.112969,0.028620},{3.113969,0.027620},{3.114969,0.026621},{3.115969,0.025621},{3.116969,0.024621},{3.117969,0.023622},{3.118969,0.022622},{3.119969,0.021622},{3.120969,0.020622},{3.121969,0.019623},{3.122969,0.018623},{3.123969,0.017623},{3.124969,0.016623},{3.125969,0.015623},{3.126969,0.014623},{3.127969,0.013624},{3.128969,0.012624},{3.129969,0.011624},{3.130969,0.010624},{3.131969,0.009624},{3.132969,0.008624},{3.133969,0.007624},{3.134969,0.006624},{3.135969,0.005624},{3.136969,0.004624},{3.137969,0.003624},{3.138969,0.002624},{3.139969,0.001624},{3.140969,0.000624},{3.141969,-0.000376},{3.142969,-0.001376},{3.143969,-0.002376},{3.144969,-0.003376},{3.145969,-0.004376},{3.146969,-0.005376},{3.147969,-0.006376},{3.148969,-0.007376},{3.149968,-0.008376},{3.150968,-0.009376},{3.151968,-0.010376},{3.152968,-0.011376},{3.153968,-0.012375},{3.154968,-0.013375},{3.155968,-0.014375},{3.156968,-0.015375},{3.157968,-0.016375},{3.158968,-0.017375},{3.159968,-0.018375},{3.160968,-0.019375},{3.161968,-0.020374},{3.162968,-0.021374},{3.163968,-0.022374},{3.164968,-0.023374},{3.165968,-0.024373},{3.166968,-0.025373},{3.167968,-0.026373},{3.168968,-0.027372},{3.169968,-0.028372},{3.170968,-0.029371},{3.171968,-0.030371},{3.172968,-0.031370},{3.173968,-0.032370},{3.174968,-0.033369},{3.175968,-0.034369},{3.176968,-0.035368},{3.177968,-0.036368},{3.178968,-0.037367},{3.179968,-0.038366},{3.180968,-0.039365},{3.181968,-0.040365},{3.182968,-0.041364},{3.183968,-0.042363},{3.184968,-0.043362},{3.185968,-0.044361},{3.186968,-0.045360},{3.187968,-0.046359},{3.188968,-0.047358},{3.189968,-0.048357},{3.190968,-0.049355},{3.191968,-0.050354},{3.192968,-0.051353},{3.193968,-0.052351},{3.194968,-0.053350},{3.195968,-0.054349},{3.196968,-0.055347},{3.197968,-0.056346},{3.198968,-0.057344},{3.199968,-0.058342}},
    {{3.200968,-0.059340},{3.201968,-0.060339},{3.202968,-0.061337},{3.203968,-0.062335},{3.204968,-0.063333},{3.205968,-0.064331},{3.206968,-0.065329},{3.207968,-0.066327},{3.208968,-0.067324},{3.209968,-0.068322},{3.210968,-0.069320},{3.211968,-0.070317},{3.212968,-0.071315},{3.213968,-0.072312},{3.214968,-0.073309},{3.215968,-0.074307},{3.216968,-0.075304},{3.217968,-0.076301},{3.218968,-0.077298},{3.219968,-0.078295},{3.220968,-0.079292},{3.221968,-0.080289},{3.222968,-0.081285},{3.223968,-0.082282},{3.224968,-0.083279},{3.225968,-0.084275},{3.226968,-0.085271},{3.227968,-0.086268},{3.228968,-0.087264},{3.229968,-0.088260},{3.230968,-0.089256},{3.231968,-0.090252},{3.232968,-0.091248},{3.233968,-0.092244},{3.234968,-0.093239},{3.235968,-0.094235},{3.236968,-0.095230},{3.237968,-0.096226},{3.238968,-0.097221},{3.239968,-0.098216},{3.240968,-0.099211},{3.241968,-0.100206},{3.242968,-0.101201},{3.243968,-0.102196},{3.244968,-0.103191},{3.245968,-0.104185},{3.246968,-0.105180},{3.247968,-0.106174},{3.248968,-0.107169},{3.249967,-0.108163},{3.250967,-0.109157},{3.251967,-0.110151},{3.252967,-0.111145},{3.253967,-0.112138},{3.254967,-0.113132},{3.255967,-0.114126},{3.256967,-0.115119},{3.257967,-0.116112},{3.258967,-0.117105},{3.259967,-0.118098},{3.260967,-0.119091},{3.261967,-0.120084},{3.262967,-0.121077},{3.263967,-0.122069},{3.264967,-0.123062},{3.265967,-0.124054},{3.266967,-0.125046},{3.267967,-0.126039},{3.268967,-0.127031},{3.269967,-0.128022},{3.270967,-0.129014},{3.271967,-0.130006},{3.272967,-0.130997},{3.273967,-0.131988},{3.274967,-0.132980},{3.275967,-0.133971},{3.276967,-0.134961},{3.277967,-0.135952},{3.278967,-0.136943},{3.279967,-0.137933},{3.280967,-0.138924},{3.281967,-0.139914},{3.282967,-0.140904},{3.283967,-0.141894},{3.284967,-0.142884},{3.285967,-0.143873},{3.286967,-0.144863},{3.287967,-0.145852},{3.288967,-0.146842},{3.289967,-0.147831},{3.290967,-0.148820},{3.291967,-0.149808},{3.292967,-0.150797},{3.293967,-0.151785},{3.294967,-0.152774},{3.295967,-0.153762},{3.296967,-0.154750},{3.297967,-0.155738},{3.298967,-0.156726},{3.299967,-0.157713}},
    {{3.300967,-0.158701},{3.301967,-0.159688},{3.302967,-0.160675},{3.303967,-0.161662},{3.304967,-0.162648},{3.305967,-0.163635},{3.306967,-0.164622},{3.307967,-0.165608},{3.308967,-0.166594},{3.309967,-0.167580},{3.310967,-0.168566},{3.311967,-0.169551},{3.312967,-0.170537},{3.313967,-0.171522},{3.314967,-0.172507},{3.315967,-0.173492},{3.316967,-0.174477},{3.317967,-0.175461},{3.318967,-0.176446},{3.319967,-0.177430},{3.320967,-0.178414},{3.321967,-0.179398},{3.322967,-0.180381},{3.323967,-0.181365},{3.324967,-0.182348},{3.325967,-0.183331},{3.326967,-0.184314},{3.327967,-0.185297},{3.328967,-0.186280},{3.329967,-0.187262},{3.330967,-0.188244},{3.331967,-0.189226},{3.332967,-0.190208},{3.333967,-0.191190},{3.334967,-0.192171},{3.335967,-0.193152},{3.336967,-0.194133},{3.337967,-0.195114},{3.338967,-0.196095},{3.339967,-0.197075},{3.340967,-0.198056},{3.341967,-0.199036},{3.342967,-0.200016},{3.343967,-0.200995},{3.344967,-0.201975},{3.345967,-0.202954},{3.346967,-0.203933},{3.347967,-0.204912},{3.348967,-0.205891},{3.349966,-0.206869},{3.350966,-0.207847},{3.351966,-0.208825},{3.352966,-0.209803},{3.353966,-0.210781},{3.354966,-0.211758},{3.355966,-0.212736},{3.356966,-0.213713},{3.357966,-0.214689},{3.358966,-0.215666},{3.359966,-0.216642},{3.360966,-0.217618},{3.361966,-0.218594},{3.362966,-0.219570},{3.363966,-0.220546},{3.364966,-0.221521},{3.365966,-0.222496},{3.366966,-0.223471},{3.367966,-0.224445},{3.368966,-0.225420},{3.369966,-0.226394},{3.370966,-0.227368},{3.371966,-0.228341},{3.372966,-0.229315},{3.373966,-0.230288},{3.374966,-0.231261},{3.375966,-0.232234},{3.376966,-0.233206},{3.377966,-0.234179},{3.378966,-0.235151},{3.379966,-0.236122},{3.380966,-0.237094},{3.381966,-0.238065},{3.382966,-0.239037},{3.383966,-0.240007},{3.384966,-0.240978},{3.385966,-0.241948},{3.386966,-0.242919},{3.387966,-0.243889},{3.388966,-0.244858},{3.389966,-0.245828},{3.390966,-0.246797},{3.391966,-0.247766},{3.392966,-0.248734},{3.393966,-0.249703},{3.394966,-0.250671},{3.395966,-0.251639},{3.396966,-0.252607},{3.397966,-0.253574},{3.398966,-0.254541},{3.399966,-0.255508}},
    {{3.400966,-0.256475},{3.401966,-0.257441},{3.402966,-0.258407},{3.403966,-0.259373},{3.404966,-0.260339},{3.405966,-0.261304},{3.406966,-0.262269},{3.407966,-0.263234},{3.408966,-0.264199},{3.409966,-0.265163},{3.410966,-0.266127},{3.411966,-0.267091},{3.412966,-0.268055},{3.413966,-0.269018},{3.414966,-0.269981},{3.415966,-0.270944},{3.416966,-0.271906},{3.417966,-0.272868},{3.418966,-0.273830},{3.419966,-0.274792},{3.420966,-0.275753},{3.421966,-0.276714},{3.422966,-0.277675},{3.423966,-0.278636},{3.424966,-0.279596},{3.425966,-0.280556},{3.426966,-0.281515},{3.427966,-0.282475},{3.428966,-0.283434},{3.429966,-0.284393},{3.430966,-0.285351},{3.431966,-0.286310},{3.432966,-0.287268},{3.433966,-0.288225},{3.434966,-0.289183},{3.435966,-0.290140},{3.436966,-0.291097},{3.437966,-0.292053},{3.438966,-0.293009},{3.439966,-0.293965},{3.440966,-0.294921},{3.441966,-0.295876},{3.442966,-0.296832},{3.443966,-0.297786},{3.444966,-0.298741},{3.445966,-0.299695},{3.446966,-0.300649},{3.447966,-0.301602},{3.448966,-0.302556},{3.449965,-0.303509},{3.450965,-0.304461},{3.451965,-0.305414},{3.452965,-0.306366},{3.453965,-0.307317},{3.454965,-0.308269},{3.455965,-0.309220},{3.456965,-0.310171},{3.457965,-0.311121},{3.458965,-0.312072},{3.459965,-0.313021},{3.460965,-0.313971},{3.461965,-0.314920},{3.462965,-0.315869},{3.463965,-0.316818},{3.464965,-0.317766},{3.465965,-0.318714},{3.466965,-0.319662},{3.467965,-0.320609},{3.468965,-0.321556},{3.469965,-0.322503},{3.470965,-0.323449},{3.471965,-0.324396},{3.472965,-0.325341},{3.473965,-0.326287},{3.474965,-0.327232},{3.475965,-0.328177},{3.476965,-0.329121},{3.477965,-0.330065},{3.478965,-0.331009},{3.479965,-0.331952},{3.480965,-0.332895},{3.481965,-0.333838},{3.482965,-0.334781},{3.483965,-0.335723},{3.484965,-0.336665},{3.485965,-0.337606},{3.486965,-0.338547},{3.487965,-0.339488},{3.488965,-0.340428},{3.489965,-0.341368},{3.490965,-0.342308},{3.491965,-0.343248},{3.492965,-0.344187},{3.493965,-0.345125},{3.494965,-0.346064},{3.495965,-0.347002},{3.496965,-0.347939},{3.497965,-0.348877},{3.498965,-0.349814},{3.499965,-0.350750}},
    {{3.500965,-0.351687},{3.501965,-0.352623},{3.502965,-0.353558},{3.503965,-0.354493},{3.504965,-0.355428},{3.505965,-0.356363},{3.506965,-0.357297},{3.507965,-0.358231},{3.508965,-0.359164},{3.509965,-0.360097},{3.510965,-0.361030},{3.511965,-0.361962},{3.512965,-0.362894},{3.513965,-0.363826},{3.514965,-0.364757},{3.515965,-0.365688},{3.516965,-0.366619},{3.517965,-0.367549},{3.518965,-0.368479},{3.519965,-0.369408},{3.520965,-0.370337},{3.521965,-0.371266},{3.522965,-0.372194},{3.523965,-0.373122},{3.524965,-0.374050},{3.525965,-0.374977},{3.526965,-0.375904},{3.527965,-0.376830},{3.528965,-0.377756},{3.529965,-0.378682},{3.530965,-0.379608},{3.531965,-0.380532},{3.532965,-0.381457},{3.533965,-0.382381},{3.534965,-0.383305},{3.535965,-0.384228},{3.536965,-0.385151},{3.537965,-0.386074},{3.538965,-0.386996},{3.539965,-0.387918},{3.540965,-0.388840},{3.541965,-0.389761},{3.542965,-0.390682},{3.543965,-0.391602},{3.544965,-0.392522},{3.545965,-0.393441},{3.546965,-0.394361},{3.547965,-0.395279},{3.548965,-0.396198},{3.549964,-0.397116},{3.550964,-0.398033},{3.551964,-0.398950},{3.552964,-0.399867},{3.553964,-0.400783},{3.554964,-0.401699},{3.555964,-0.402615},{3.556964,-0.403530},{3.557964,-0.404445},{3.558964,-0.405359},{3.559964,-0.406273},{3.560964,-0.407187},{3.561964,-0.408100},{3.562964,-0.409013},{3.563964,-0.409925},{3.564964,-0.410837},{3.565964,-0.411748},{3.566964,-0.412659},{3.567964,-0.413570},{3.568964,-0.414480},{3.569964,-0.415390},{3.570964,-0.416300},{3.571964,-0.417209},{3.572964,-0.418117},{3.573964,-0.419025},{3.574964,-0.419933},{3.575964,-0.420840},{3.576964,-0.421747},{3.577964,-0.422654},{3.578964,-0.423560},{3.579964,-0.424466},{3.580964,-0.425371},{3.581964,-0.426276},{3.582964,-0.427180},{3.583964,-0.428084},{3.584964,-0.428987},{3.585964,-0.429890},{3.586964,-0.430793},{3.587964,-0.431695},{3.588964,-0.432597},{3.589964,-0.433499},{3.590964,-0.434399},{3.591964,-0.435300},{3.592964,-0.436200},{3.593964,-0.437100},{3.594964,-0.437999},{3.595964,-0.438898},{3.596964,-0.439796},{3.597964,-0.440694},{3.598964,-0.441591},{3.599964,-0.442488}},
    {{3.600964,-0.443385},{3.601964,-0.444281},{3.602964,-0.445176},{3.603964,-0.446072},{3.604964,-0.446966},{3.605964,-0.447861},{3.606964,-0.448755},{3.607964,-0.449648},{3.608964,-0.450541},{3.609964,-0.451434},{3.610964,-0.452326},{3.611964,-0.453217},{3.612964,-0.454108},{3.613964,-0.454999},{3.614964,-0.455889},{3.615964,-0.456779},{3.616964,-0.457669},{3.617964,-0.458557},{3.618964,-0.459446},{3.619964,-0.460334},{3.620964,-0.461221},{3.621964,-0.462108},{3.622964,-0.462995},{3.623964,-0.463881},{3.624964,-0.464767},{3.625964,-0.465652},{3.626964,-0.466537},{3.627964,-0.467421},{3.628964,-0.468305},{3.629964,-0.469188},{3.630964,-0.470071},{3.631964,-0.470953},{3.632964,-0.471835},{3.633964,-0.472717},{3.634964,-0.473598},{3.635964,-0.474478},{3.636964,-0.475358},{3.637964,-0.476238},{3.638964,-0.477117},{3.639964,-0.477995},{3.640964,-0.478873},{3.641964,-0.479751},{3.642964,-0.480628},{3.643964,-0.481505},{3.644964,-0.482381},{3.645964,-0.483257},{3.646964,-0.484132},{3.647964,-0.485007},{3.648964,-0.485881},{3.649963,-0.486755},{3.650963,-0.487628},{3.651963,-0.488501},{3.652963,-0.489373},{3.653963,-0.490245},{3.654963,-0.491116},{3.655963,-0.491987},{3.656963,-0.492857},{3.657963,-0.493727},{3.658963,-0.494597},{3.659963,-0.495466},{3.660963,-0.496334},{3.661963,-0.497202},{3.662963,-0.498069},{3.663963,-0.498936},{3.664963,-0.499802},{3.665963,-0.500668},{3.666963,-0.501534},{3.667963,-0.502399},{3.668963,-0.503263},{3.669963,-0.504127},{3.670963,-0.504990},{3.671963,-0.505853},{3.672963,-0.506715},{3.673963,-0.507577},{3.674963,-0.508439},{3.675963,-0.509299},{3.676963,-0.510160},{3.677963,-0.511020},{3.678963,-0.511879},{3.679963,-0.512738},{3.680963,-0.513596},{3.681963,-0.514454},{3.682963,-0.515311},{3.683963,-0.516168},{3.684963,-0.517024},{3.685963,-0.517880},{3.686963,-0.518735},{3.687963,-0.519590},{3.688963,-0.520444},{3.689963,-0.521297},{3.690963,-0.522150},{3.691963,-0.523003},{3.692963,-0.523855},{3.693963,-0.524707},{3.694963,-0.525558},{3.695963,-0.526408},{3.696963,-0.527258},{3.697963,-0.528107},{3.698963,-0.528956},{3.699963,-0.529805}},
    {{3.700963,-0.530653},{3.701963,-0.531500},{3.702963,-0.532347},{3.703963,-0.533193},{3.704963,-0.534039},{3.705963,-0.534884},{3.706963,-0.535729},{3.707963,-0.536573},{3.708963,-0.537416},{3.709963,-0.538259},{3.710963,-0.539102},{3.711963,-0.539944},{3.712963,-0.540785},{3.713963,-0.541626},{3.714963,-0.542466},{3.715963,-0.543306},{3.716963,-0.544145},{3.717963,-0.544984},{3.718963,-0.545822},{3.719963,-0.546660},{3.720963,-0.547497},{3.721963,-0.548333},{3.722963,-0.549169},{3.723963,-0.550005},{3.724963,-0.550840},{3.725963,-0.551674},{3.726963,-0.552508},{3.727963,-0.553341},{3.728963,-0.554174},{3.729963,-0.555006},{3.730963,-0.555837},{3.731963,-0.556668},{3.732963,-0.557499},{3.733963,-0.558329},{3.734963,-0.559158},{3.735963,-0.559987},{3.736963,-0.560815},{3.737963,-0.561643},{3.738963,-0.562470},{3.739963,-0.563296},{3.740963,-0.564122},{3.741963,-0.564948},{3.742963,-0.565773},{3.743963,-0.566597},{3.744963,-0.567421},{3.745963,-0.568244},{3.746963,-0.569066},{3.747963,-0.569888},{3.748963,-0.570710},{3.749962,-0.571531},{3.750962,-0.572351},{3.751962,-0.573171},{3.752962,-0.573990},{3.753962,-0.574808},{3.754962,-0.575626},{3.755962,-0.576444},{3.756962,-0.577261},{3.757962,-0.578077},{3.758962,-0.578892},{3.759962,-0.579708},{3.760962,-0.580522},{3.761962,-0.581336},{3.762962,-0.582149},{3.763962,-0.582962},{3.764962,-0.583774},{3.765962,-0.584586},{3.766962,-0.585397},{3.767962,-0.586207},{3.768962,-0.587017},{3.769962,-0.587827},{3.770962,-0.588635},{3.771962,-0.589443},{3.772962,-0.590251},{3.773962,-0.591058},{3.774962,-0.591864},{3.775962,-0.592670},{3.776962,-0.593475},{3.777962,-0.594280},{3.778962,-0.595084},{3.779962,-0.595887},{3.780962,-0.596690},{3.781962,-0.597492},{3.782962,-0.598293},{3.783962,-0.599094},{3.784962,-0.599895},{3.785962,-0.600694},{3.786962,-0.601494},{3.787962,-0.602292},{3.788962,-0.603090},{3.789962,-0.603888},{3.790962,-0.604684},{3.791962,-0.605480},{3.792962,-0.606276},{3.793962,-0.607071},{3.794962,-0.607865},{3.795962,-0.608659},{3.796962,-0.609452},{3.797962,-0.610245},{3.798962,-0.611037},{3.799962,-0.611828}},
    {{3.800962,-0.612619},{3.801962,-0.613409},{3.802962,-0.614198},{3.803962,-0.614987},{3.804962,-0.615775},{3.805962,-0.616563},{3.806962,-0.617350},{3.807962,-0.618136},{3.808962,-0.618922},{3.809962,-0.619707},{3.810962,-0.620491},{3.811962,-0.621275},{3.812962,-0.622059},{3.813962,-0.622841},{3.814962,-0.623623},{3.815962,-0.624405},{3.816962,-0.625185},{3.817962,-0.625966},{3.818962,-0.626745},{3.819962,-0.627524},{3.820962,-0.628302},{3.821962,-0.629080},{3.822962,-0.629857},{3.823962,-0.630633},{3.824962,-0.631409},{3.825962,-0.632184},{3.826962,-0.632959},{3.827962,-0.633733},{3.828962,-0.634506},{3.829962,-0.635278},{3.830962,-0.636050},{3.831962,-0.636822},{3.832962,-0.637592},{3.833962,-0.638362},{3.834962,-0.639132},{3.835962,-0.639901},{3.836962,-0.640669},{3.837962,-0.641436},{3.838962,-0.642203},{3.839962,-0.642969},{3.840962,-0.643735},{3.841962,-0.644500},{3.842962,-0.645264},{3.843962,-0.646028},{3.844962,-0.646791},{3.845962,-0.647553},{3.846962,-0.648315},{3.847962,-0.649076},{3.848962,-0.649836},{3.849961,-0.650596},{3.850961,-0.651355},{3.851961,-0.652113},{3.852961,-0.652871},{3.853961,-0.653628},{3.854961,-0.654385},{3.855961,-0.655141},{3.856961,-0.655896},{3.857961,-0.656650},{3.858961,-0.657404},{3.859961,-0.658157},{3.860961,-0.658910},{3.861961,-0.659662},{3.862961,-0.660413},{3.863961,-0.661164},{3.864961,-0.661914},{3.865961,-0.662663},{3.866961,-0.663411},{3.867961,-0.664159},{3.868961,-0.664907},{3.869961,-0.665653},{3.870961,-0.666399},{3.871961,-0.667144},{3.872961,-0.667889},{3.873961,-0.668633},{3.874961,-0.669376},{3.875961,-0.670119},{3.876961,-0.670861},{3.877961,-0.671602},{3.878961,-0.672342},{3.879961,-0.673082},{3.880961,-0.673821},{3.881961,-0.674560},{3.882961,-0.675298},{3.883961,-0.676035},{3.884961,-0.676772},{3.885961,-0.677507},{3.886961,-0.678243},{3.887961,-0.678977},{3.888961,-0.679711},{3.889961,-0.680444},{3.890961,-0.681177},{3.891961,-0.681908},{3.892961,-0.682639},{3.893961,-0.683370},{3.894961,-0.684100},{3.895961,-0.684829},{3.896961,-0.685557},{3.897961,-0.686285},{3.898961,-0.687012},{3.899961,-0.687738}},
    {{3.900961,-0.688463},{3.901961,-0.689188},{3.902961,-0.689913},{3.903961,-0.690636},{3.904961,-0.691359},{3.905961,-0.692081},{3.906961,-0.692803},{3.907961,-0.693523},{3.908961,-0.694243},{3.909961,-0.694963},{3.910961,-0.695682},{3.911961,-0.696400},{3.912961,-0.697117},{3.913961,-0.697833},{3.914961,-0.698549},{3.915961,-0.699265},{3.916961,-0.699979},{3.917961,-0.700693},{3.918961,-0.701406},{3.919961,-0.702118},{3.920961,-0.702830},{3.921961,-0.703541},{3.922961,-0.704251},{3.923961,-0.704961},{3.924961,-0.705670},{3.925961,-0.706378},{3.926961,-0.707086},{3.927961,-0.707792},{3.928961,-0.708498},{3.929961,-0.709204},{3.930961,-0.709908},{3.931961,-0.710612},{3.932961,-0.711315},{3.933961,-0.712018},{3.934961,-0.712720},{3.935961,-0.713421},{3.936961,-0.714121},{3.937961,-0.714821},{3.938961,-0.715520},{3.939961,-0.716218},{3.940961,-0.716916},{3.941961,-0.717612},{3.942961,-0.718308},{3.943961,-0.719004},{3.944961,-0.719698},{3.945961,-0.720392},{3.946961,-0.721086},{3.947961,-0.721778},{3.948961,-0.722470},{3.949960,-0.723161},{3.950960,-0.723851},{3.951960,-0.724541},{3.952960,-0.725230},{3.953960,-0.725918},{3.954960,-0.726605},{3.955960,-0.727292},{3.956960,-0.727978},{3.957960,-0.728663},{3.958960,-0.729348},{3.959960,-0.730031},{3.960960,-0.730714},{3.961960,-0.731397},{3.962960,-0.732078},{3.963960,-0.732759},{3.964960,-0.733439},{3.965960,-0.734119},{3.966960,-0.734797},{3.967960,-0.735475},{3.968960,-0.736152},{3.969960,-0.736829},{3.970960,-0.737504},{3.971960,-0.738179},{3.972960,-0.738854},{3.973960,-0.739527},{3.974960,-0.740200},{3.975960,-0.740872},{3.976960,-0.741543},{3.977960,-0.742214},{3.978960,-0.742883},{3.979960,-0.743553},{3.980960,-0.744221},{3.981960,-0.744888},{3.982960,-0.745555},{3.983960,-0.746221},{3.984960,-0.746887},{3.985960,-0.747551},{3.986960,-0.748215},{3.987960,-0.748878},{3.988960,-0.749540},{3.989960,-0.750202},{3.990960,-0.750863},{3.991960,-0.751523},{3.992960,-0.752182},{3.993960,-0.752841},{3.994960,-0.753499},{3.995960,-0.754156},{3.996960,-0.754812},{3.997960,-0.755468},{3.998960,-0.756122},{3.999960,-0.756776}}
    }
    };
    __forceinline float sin查(float f)
        {
        Δmath查22(f,sin400,sin,0.000000f);
        }
    
    
        
    
        
    ENDENDENDENDENDENDENDEND
    #endif
    
    
    

     

    展开全文
  • 特别是当 SIN OR COS 三角函数不可用时。 这是普通 MAGIC CIRCLE 的一个略有不同的版本。 此版本适用于对称同步更新并避免常见实现中出现的涟漪问题。 这种布置可以充当数字谐振器。 它需要相对简单的算术。 该算法...
  • 图像处理之局部二特征

    千次阅读 2017-01-06 16:12:59
    图像处理之局部二特征一:局部二模式(LBP)介绍 局部二模式(Local Binary Pattern)主要用来实现2D图像纹理分析。其基本思想是用每个像素跟它周围的像素相比较得到局部图像结构,假设中心像素大于相邻像素...

    图像处理之局部二值特征

    一:局部二值模式(LBP)介绍
    局部二值模式(Local Binary Pattern)主要用来实现2D图像纹理分析。其基本思想是用每个像素跟它周围的像素相比较得到局部图像结构,假设中心像素值大于相邻像素值则则相邻像素点赋值为1,否则赋值为0,最终对每个像素点都会得到一个二进制八位的表示,比如11100111。假设3x3的窗口大小,这样对每个像素点来说组合得到的像素值的空间为[0~2^8]。这种结果我称为图像的局部二值模式或者简写为了LBP。
    这里写图片描述

    二:局部二值模式(LBP)扩展
    对于这种固定窗口大小方式的局部二值模式,很多人很快就发现它的弊端,不能很好的反映出图像结构,于是高人纷纷上阵把它改为窗口大小可变,而且把矩形结构改成圆形结构。而且还总结出来如下一系列的典型结构单元:
    这里写图片描述

    该操作是基于原来的局部二值模式的扩展,所以又被称为扩展的局部二值模式。但是一旦改为圆形的时候,寻找八个点坐标可能会产生小数坐标,这个时候就需要通过插值方式产生该像素点的像素值,最常见的插值方式基于双线性插值。这样就完成了任意尺度上的局部二值模式的采样。

    三:运行
    输入图像与3x3默认的LBP运行结果如下:
    这里写图片描述
    在扩展模式下半径分别为1、3、5、7时候的运行结果:
    这里写图片描述

    四:代码实现 - 基于OpenCV实现
    简单说一下步骤
    1. 读入图像
    2. 彩色图像转灰度
    3. 默认LBP处理操作
    4. 扩展LBP处理操作
    完整的源代码如下:

    #include <opencv2/opencv.hpp>
    #include <iostream>
    #include "math.h"
    
    using namespace cv;
    using namespace std;
    
    int max_thresh = 20;
    int current_radius = 5;
    Mat gray_src, LBP_image, ELBP_image;
    void Demo_ELBP(int, void*);
    int main(int argc, char** argv) {
        Mat src, dst;
        src = imread("D:/vcprojects/images/cat.jpg");
        if (src.empty()) {
            printf("could not load image...\n");
            return -1;
        }
        const char* output_tt = "LBP Result";
        namedWindow("input image", CV_WINDOW_AUTOSIZE);
        namedWindow(output_tt, CV_WINDOW_AUTOSIZE);
        imshow("input image", src);
    
        // convert to gray
    
        cvtColor(src, gray_src, COLOR_BGR2GRAY);
        int width = gray_src.cols;
        int height = gray_src.rows;
    
        // default LBP image
        LBP_image = Mat::zeros(src.rows - 2, src.cols - 2, CV_8UC1);
        for (int row = 1; row < height-1; row++) {
            for (int col = 1; col < width-1; col++) {
                uchar center = gray_src.at<uchar>(row, col);
                uchar code = 0;
                code |= (gray_src.at<uchar>(row - 1, col - 1) > center) << 7;
                code |= (gray_src.at<uchar>(row - 1, col) > center) << 6;
                code |= (gray_src.at<uchar>(row - 1, col + 1) > center) << 5;
                code |= (gray_src.at<uchar>(row, col + 1) > center) << 4;
                code |= (gray_src.at<uchar>(row+ 1, col + 1) > center) << 3;
                code |= (gray_src.at<uchar>(row + 1, col) > center) << 2;
                code |= (gray_src.at<uchar>(row + 1, col - 1) > center) << 1;
                code |= (gray_src.at<uchar>(row, col - 1) > center) << 0;
                LBP_image.at<uchar>(row- 1, col - 1) = code;
            }
        }
    
        imshow(output_tt, LBP_image);
    
        // extend LBP 
        namedWindow("ELBP_Result", CV_WINDOW_AUTOSIZE);
        createTrackbar("Radius:", "ELBP_Result", &current_radius, max_thresh, Demo_ELBP);
        Demo_ELBP(0, 0);
    
        waitKey(0);
        return 0;
    }
    
    void Demo_ELBP(int, void*) {
        int offset = current_radius * 2;
        ELBP_image = Mat::zeros(gray_src.rows - offset, gray_src.cols - offset, CV_8UC1);
        int height = gray_src.rows;
        int width = gray_src.cols;
    
        int neighbors = 8;
        for (int n = 0; n<neighbors; n++) {
            // sample points
            float x = static_cast<float>(current_radius) * cos(2.0*CV_PI*n / static_cast<float>(neighbors));
            float y = static_cast<float>(current_radius) * -sin(2.0*CV_PI*n / static_cast<float>(neighbors));
            // relative indices
            int fx = static_cast<int>(floor(x));
            int fy = static_cast<int>(floor(y));
            int cx = static_cast<int>(ceil(x));
            int cy = static_cast<int>(ceil(y));
            // fractional part
            float ty = y - fy;
            float tx = x - fx;
            // set interpolation weights
            float w1 = (1 - tx) * (1 - ty);
            float w2 = tx  * (1 - ty);
            float w3 = (1 - tx) *      ty;
            float w4 = tx  *      ty;
            // iterate through your data
            for (int i = current_radius; i < gray_src.rows - current_radius; i++) {
                for (int j = current_radius; j < gray_src.cols - current_radius; j++) {
                    float t = w1*gray_src.at<uchar>(i + fy, j + fx) + w2*gray_src.at<uchar>(i + fy, j + cx) + w3*gray_src.at<uchar>(i + cy, j + fx) + w4*gray_src.at<uchar>(i + cy, j + cx);
                    // we are dealing with floating point precision, so add some little tolerance
                    ELBP_image.at<uchar>(i - current_radius, j - current_radius) += ((t > gray_src.at<uchar>(i, j)) && (abs(t - gray_src.at<uchar>(i, j)) > std::numeric_limits<float>::epsilon())) << n;
                }
            }
        }
    
        imshow("ELBP_Result", ELBP_image);
    }

    请继续关注本博客,同时关注微信公众号【OpenCV学堂】定期推送更多干货,图像处理算法!

    展开全文
  • 相机校正、张氏标定法、极大似然估计/极大似然参数估计、牛顿法、高斯牛顿法、LM算法、sin/cos/tan/cot 相机校正和图像校正:图像去畸变 车道线提取:Sobel边缘提取算法 透视变换 车道线定位及拟合:直方图确定车道...

    日萌社

    人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


    CNN:RCNN、SPPNet、Fast RCNN、Faster RCNN、YOLO V1 V2 V3、SSD、FCN、SegNet、U-Net、DeepLab V1 V2 V3、Mask RCNN

    车道线检测

    相机校正、张氏标定法、极大似然估计/极大似然参数估计、牛顿法、高斯牛顿法、LM算法、sin/cos/tan/cot

    相机校正和图像校正:图像去畸变

    车道线提取:Sobel边缘提取算法

    透视变换

    车道线定位及拟合:直方图确定车道线位置

    车道曲率和中心点偏离距离计算

    在视频中检测车道线


    3.2. 相机校正

    学习目标

    • 了解相机的成像原理
    • 了解相机标定的分类,原理和意义
    • 了解图像畸变
    • 知道相机标定过程中的坐标系
    • 知道张氏标定法的原理及实现
    • 了解双目校正

    1. 相机标定的意义

    我们所处的世界是三维的,而照片是二维的,我们可以把相机认为是一个函数,输入量是一个场景,输出量是一幅灰度图。这个从三维到二维的过程的函数是不可逆的。

    相机标定的一个目的是要找一个合适的数学模型,求出这个模型的参数,能够近似从三维到二维的过程,使这个三维到二维的过程的函数找到反函数。

    这个逼近的过程就是相机标定,我们用简单的数学模型来表达复杂的成像过程。

    由此可知,相机标定的一个目的就是建立像素坐标系和世界坐标系之间的关系。原理是根据摄像机的模型,由已知特征点的图像坐标求解摄像机的模型参数,并求出成像的反过程,从而从图像中恢复出空间点的三维坐标,达到三维重建的目的。

    另外相机标定还可以进行图像校正,由于透镜的制造精度以及组装工艺的偏差会引入畸变,导致图形失真,所以我们可以求解畸变参数,对图像进行去畸变。

    2. 成像原理

    在介绍相机标定之前,我们首先来看下相机的成像模型。也就是,现实物体上的一个点在相机采集到的图像中所在的位置是怎么确定的。我们采用的模型是针孔模型,也就是小孔成像。

    小孔成像是利用了光线直线传播的原理。比如说,远处有一棵大树,而我们有个盒子,在这个盒子的对着大树的那一面上用针尖戳一个小孔。我们任选这棵大树上的任何的一个点,它都会向四周去反射无数条光线。但是因为光线是直线传播的,所以这些光线要么没有一条能进入盒子中,要么就只有一条光线是进入到这个盒子里面的。进入到盒子中的光线会在盒子里的一面上形成一个光点。这个光点跟大树上的某个点是对应的,颜色也是一致的,这就建立了一对一的关系。如果我们把感光胶片或者感光的传感器放在盒子里,就可以做成一个针孔相机来得到大树的彩色图像了。如下图所示:

    由于大树上每个点反射的无数条光线只有一条进入到盒子中,所以图像是很暗的。而加大孔径,虽然可以提高图像的亮度,却会使物体上的某一个点会反射一小束光进入到相机里。这一小束光会在感光传感器上形成一个光斑,而不是一个点;从而相机失去了物体与图像上的点的一一对应关系,进而导致图像模糊甚至无法成像。当然实际的针孔相机不可能是让每个点只有一条光线进入相机。因为光具有波粒二象性,是可以衍射的,所以很小的针孔,也会导致图像模糊。根据可见光的波长,理论计算的小孔最佳直径是 0.25mm 左右,相应的光圈值大概是 f/200。

    所以用一个直径比针孔直径大许多的凸透镜来替代针孔。凸透镜可以把物体上的一个点所反射的那一小束通过透镜的光重新汇聚成一个点,这样,不但图像亮度增大了,而且物体和图像上点的又可以一一对应起来了。这就是我们现在常用的相机的基本工作原理。

    3. 相机成像模型

    现在我们看下相机的成像模型,我们从下图中直观感受下:

    下面我们介绍下成像过程中的四大坐标系:

    是目标物体位置的参考系,是为了更好的描述相机的位置创建的,世界坐标系可以根据运算方便自由放置。单位为长度单位,比如说m。在双目视觉中世界坐标系主要有三个用途:

    • 标定时确定标定物的位置;

    • 作为双目视觉的系统参考系,给出两个摄像机相对世界坐标系的关系,从而求出相机之间的相对关系;

    • 作为重建得到三维坐标的容器,存放重建后的物体的三维坐标。世界坐标系是将看见中物体纳入运算的第一站。

    是相机站在自己的角度衡量物体的坐标系。相机坐标系以相机的光心(凸透镜的中心点)为原点,z轴与摄像机的光轴平行。拍摄的物体需要在世界坐标系下,转换为经历刚体变化转到摄像机坐标系,然后在和图像坐标系发生关系。它是图像坐标与世界坐标之间发生关系的纽带,沟通了世界上最远的距离。单位为长度单位,如mm。

    图像坐标系(x,y):以图像平面的中心为坐标原点,为了描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系而引入,方便进一步得到像素坐标系下的坐标。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。

    像素坐标系(u,v): 以图像平面的左上角顶点为原点,为了描述物体成像后的像点在数字图像上的坐标而引入,是我们真正从相机内读取到的信息所在的坐标系。像素坐标系就是以像素为单位的图像坐标系.

    注意:也有很多人把图像坐标系和像素坐标系合在一起,称作三大坐标系,也有人分开,称为四大坐标系。

    下面我们进行一系列的变换,引入多个参数矩阵,实现从世界坐标系到像素坐标的转换。已知一个现实世界中的物体点的在世界坐标系中的坐标为(Xw, Yw, Zw),经过相机拍摄得到图片,在图片上的像素坐标为(u , v )。假设在图像坐标系中的坐标为( x , y ),在相机坐标系中的坐标为(Xc, Yc, Zc)。各个坐标之间的转化流程如下图所示:

    3.1. 世界坐标系与相机坐标系之间的转换

    世界坐标系转换到相机坐标系时不会产生形变,所以将世界坐标系进行刚体变换就可转换为相机坐标系。三维空间中,当物体不发生形变时,而只进行旋转平移的运动,就是刚体变换。空间中的一个坐标系总可以通过刚体变换,即平移和旋转,就可以转换为另一个坐标系,如下图所示:

    两个坐标系间刚体变换的数学表达式如下所示:

    可以将其写为齐次坐标的形式:

    则有:(假设其中x’,y’表示世界坐标系,x,y是相机坐标系)

    同理,绕x,y轴旋转角度φ时,则有:

    所以旋转矩阵:

    因为R受x,y,z三个方向上的分量的控制,所以具有三个自由度。

    3.2. 相机坐标系到图像坐标系的转换

    从相机坐标系到图像坐标系,是从3d到2d的过程,属于透射投影关系:

    如上图所示,相机坐标系为Oc-Xc-Yc-Zc,图像坐标系为o-x-y,焦距f为o-Oc。记空间点P在相机坐标系中的坐标为(Xc, Yc, Zc),在图像中的坐标是(x,y),根据三角形相似定理有:

    我们把上式写成矩阵形式,并使用齐次坐标,则有:

    3.3. 图像坐标系到像素坐标系

    像素坐标系和图像坐标系都在成像平面上,只是各自的原点和度量单位不一样。图像坐标系的原点为相机光轴与成像平面的交点,通常情况下是成像平面的中点。图像坐标系的单位是mm,属于物理单位,而像素坐标系的原点在图像的左上角,单位是pixel,也就是我们说的几行几列。如下图所示:

    所以这二者之间的转换如下:

    其中dx和dy表示每一列和每一行分别代表多少mm,即1pixel=dx mm。我们将其用齐次坐标表示,并写成矩阵形式:

    3.4. 总结

    我们已经介绍了各个坐标系之间的转换过程,但是我们想知道的是如何从世界坐标系转换到像素坐标系,因此我们需要把上面介绍到的联系起来,将三者相乘,可以把这三个过程和在一起,写成一个矩阵:

    我们假设转换矩阵为P,则有:

    内参:确定相机从三维空间到二维图像的投影关系,畸变系数也属于内参,我们在下面进行介绍。

    外参:决定相机坐标与世界坐标系之间相对位置关系,主要包括旋转和平移两部分。


     从 图像坐标系 到 像素坐标系 的转换

    图像坐标系和像素坐标系都在成像平面上,只是各自的原点和度量单位不一样。
    图像坐标系的原点为相机光轴与成像平面的交点,通常情况下是成像平面的中点。
    图像坐标系的单位是mm,属于物理单位。而像素坐标系的原点在图像的左上角,
    单位是像素pixel(组成屏幕图像的最小独立元素),也就是我们说的几行几列。
    
    把图像坐标系中的点p(x,y) 转换为 像素坐标系中的点p(x,y)。
    第一步:先获取出图像坐标系原点O(u0,v0)在像素坐标系中的坐标位置。
    第二步:
    	1.在图像坐标系中使用长度来作为单位的,该长度指物理单位。在像素坐标系中使用像素来作为单位的。
    	2.要使用多大的长度表示一个像素呢,那么就是使用dx和dy分别代表每一行(x方向)和每一列(y方向)使用多大的长度代表一个像素。
    	  比如每一行(x方向)和每一列(y方向)均使用1mm代表1个像素,那么dx和dy均为1mm。
    	  那么1/dx和1/dy也即为1个像素和长度单位的比值,1/dx和1/dy还可以分别表示为1像素/x方向的物理单位长度和1像素/y方向的物理单位长度。
    	3.x/dx和y/dy中的x和y分别代表的是图像坐标系中的点p(x,y)的x和y,那么该x和y分别以图像坐标系原点O(u0,v0)为开始,
    	  x代表x方向有多少个像素,y代表y方向有多少个像素。而dx和dy又是表示x方向和y方向使用多大的长度代表一个像素,
    	  x/dx就是表示“图像坐标系中的点p(x,y)在以图像坐标系原点O(u0,v0)为开始的”x方向有x个像素除以“一个像素在x方向的”长度大小。
    	  y/dy就是表示“图像坐标系中的点p(x,y)在以图像坐标系原点O(u0,v0)为开始的”y方向有y个像素除以“一个像素在y方向的”长度大小。
    	  比如现在x方向和y方向均使用1mm长度代表1个像素,那么dx和dy均为1mm,所以x/dx和y/dy的结果分别就为x和y,
    	  此时的x/dx的结果x和y/dy的结果y分别代表为点p(x,y)已经改为以像素坐标系的形式表示为x方向的像素坐标和y方向的像素坐标。
    	4.因为在第一步中就已经先获取出图像坐标系原点O(u0,v0)在像素坐标系中的坐标位置,
    	  那么此时的O(u0,v0)即为以像素坐标系的形式表示为像素坐标,那么u0表示为以像素坐标系原点Ouv为开始在x方向有多少个像素,
    	  v0表示为以像素坐标系原点Ouv为开始在y方向有多少个像素,即u0和v0不再是以长度坐标表示而是以像素坐标表示。
    	5.最终 x/dx+u0 和 y/dy+v0 便分别代表为 点p(x,y)以像素坐标原点Ouv为起点的像素坐标系的形式来表示的x方向的像素坐标和y方向的像素坐标。
    


    4. 图像畸变

    我们在相机坐标系到图像坐标系变换时谈到透视投影。相机拍照时通过透镜把实物投影到像平面上,但是透镜由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真。因此我们需要考虑成像畸变的问题。透镜的畸变主要分为径向畸变和切向畸变两类。

    4.1. 径向畸变

    顾名思义,径向畸变就是沿着透镜半径方向分布的畸变,产生原因是光线在原理透镜中心的地方比靠近中心的地方更加弯曲,这种畸变在普通的镜头中表现更加明显,径向畸变主要包括桶形畸变和枕形畸变两种。以下分别是枕形和桶形畸变示意图:(从左到右依次是:正常无畸变,桶形畸变和枕形畸变)

    从上图中可以看出,径向畸变以某一个中心往外延伸,且越往外,畸变越大;显然畸变与距离成一种非线性的变换关系,可以用多项式来近似。径向畸变的数学模型可以用主点(principle point)周围的泰勒级数展开式的前几项进行描述,通常使用前两项,即k1和k2,对于畸变很大的镜头,如鱼眼镜头,可以增加使用第三项k3来进行描述,成像仪上某点根据其在径向方向上的分布位置,调节公式为:

    式里(x0,y0)是畸变点在像平面的原始位置,(x,y)是畸变较正后新的位置,下图是距离光心不同距离上的点经过透镜径向畸变后点位的偏移示意图,可以看到,距离光心越远,径向位移越大,表示畸变也越大,在光心附近,几乎没有偏移。

    4.2. 切向畸变

    切向畸变是由于透镜本身与相机传感器平面(像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致。在相机传感器和镜头不平行的情况下,因为存在夹角,所以光透过镜头传到图像传感器上时,成像位置发生了变化,如下图所示:

    畸变模型可以用两个额外的参数p1和p2来描述:

    下图显示某个透镜的切向畸变示意图,大体上畸变位移相对于左下—右上角的连线是对称的,这跟凸透镜与传感器之间的夹角有关:

    径向畸变和切向畸变模型中一共有5个畸变参数:k1、k2、p1、p2、k3,得到这五个参数,就可以进行图像的去畸变。这些都属于相机的内参。

    5.相机标定的分类

    相机标定方法一般分为三类,分为传统的标定算法,自标定法和基于主动视觉的标定法。分别介绍如下:

    • 传统的标定算法:传统的相机标定算法就是基于标定物的相机标定算法,在进行相机标定时,要通过专门指定的标定物来完成,此类方法是利用标定物上构建的已确定的物点坐标和与之对应的图像点之间的联系,借助一些数学方法,得到相机的内部和外部参数。它对标定物的要求有:标定物的特征部分与周围环境存在较大的差别,特征容易分辨且提取方便,标定物具有较高的稳定性,也就是说它的特征不随着相机位置的变换产生畸变。常见模板有棋盘格,圆形,三角形等。

    • 代表算法有Tsai标定法和直接线性变换法(DLT)等。

    • 自标定法:该算法不使用标定物,而是依靠图像点之间存在的关系,直接计算相机的参数。该算法只计算相机的内部参数的约束,不考虑相机系统的外部场景,所以方法灵活,应用范围较广,但是算法鲁棒性较差,只适合精度要求较低的场合。

    • 基于主动视觉的标定法:该算法是控制相机做一些特定的动作,比如说平移,旋转,得到多张图片,以此计算相机参数。使用比较广泛的有两类:一类是在三维空间中,让相机作两组纯平移运动,进而求解相机的参数,第二类是控制相机绕光心轴旋转,获得相机的参数。此类方法优点是算法简单,往往能够获得线性解,故鲁棒性较高,缺点是系统的成本高、实验设备昂贵、实验条件要求高,而且不适合于运动参数未知或无法控制的场合。

    6.张氏标定法

    张氏标定法是张正友博士在1999年发表在国际顶级会议ICCV上的论文《Flexible Camera Calibration By Viewing a Plane From Unknown Orientations》中,提出的一种利用平面棋盘格进行相机标定的实用方法。

    该方法介于传统标定法和自标定法之间,既克服了传统标定法需要的高精度三维标定物的缺点,又解决了自标定法鲁棒性差的难题。标定过程不需要特殊的标定物,只需使用一张打印出来的棋盘格,并从不同方向拍摄几组图片即可,不仅实用灵活方便,而且精度很高,鲁棒性好。因此很快被全世界广泛采用,极大的进了三维计算机视觉从实验室走向真实世界的进程。

    6.1. 棋盘格数据

    棋盘是一块由黑白方块间隔组成的标定板,我们用它来作为相机标定的标定物(从真实世界映射到数字图像内的对象)。之所以我们用棋盘作为标定物是因为平面棋盘模式更容易处理(相对于复杂的三维物体),但与此同时,二维物体相对于三维物体会缺少一部分信息,于是我们会多次改变棋盘的方位来捕捉图像,以求获得更丰富的坐标信息。如下图所示,是相机在不同方向下拍摄的同一个棋盘图像。如下图所示:

    6.2. 单应性矩阵

    张氏校正法是基于平面棋盘格的标定,首先我们介绍下两个平面中的单应性映射,在计算机视觉中,单应性(Homography)指从一个平面到另一个平面的投影映射,所以在标定物平面与图像平面之间存在单应性。

    上文中我们已经得到了像素坐标系和世界坐标系下的坐标映射关系,因为标定物是平面,我们假设标定棋盘位于世界坐标中z=0平面,然后进行单应性计算。化简前文中的公式有:

    其中:u,v表示像素坐标系中的坐标,矩阵A是内参矩阵,其中α=f/dx,β=f/dy,u0,x0,γ(由于制造误差产生的两个坐标轴偏斜参数,通常很小,如果按上文中矩阵运算得到的值即为0)表示5个相机内参,r1,r2,t示相机外参,xw,yw,zw 表示世界坐标系中的坐标. α,β和物理焦距f之间的关系为:α =fsx和β=fsy。其中sx=1/dx表示x方向上的1毫米长度所代表像素值,即像素/单位毫米,α,β是在相机标定中整体计算出来的。

    那单应性矩阵定义为:

    那怎么求H的值呢?

    假设单应性矩阵H为:

    所以一组点对应着两个等式。

    我们分析一下,H是一个3*3的矩阵,并且其中有一个元素是作为齐次坐标。因此,H有8个未知量待解。(x,y)作为标定物的坐标,可以由设计者人为控制,是已知量。(u,v)是像素坐标,我们可以直接通过摄像机获得。对于一组对应的(x,y)-(u,v)我们可以获得两组方程。现在有8个未知量需要求解,所以至少需要八个方程。也就是说需要四个对应点,即可求出图像平面到世界平面的单应性矩阵H。这也是张氏标定采用四个角点的棋盘格作为标定物的一个原因。

    下面我们将上面的公式展开:

    假如我们得到了标定物与图像中对应的N个点对,那么有线性方程组为:

    因为单应性矩阵中包含齐次坐标,我们可以直接将和h33设为1,剩余的8个参数未知的H至少需要4个点对即可计算出来。

    6.3. 利用约束条件求解内参矩阵

    通过上述介绍,应用4个点我们可以获得单应性矩阵H。但是,H是内参和外参的合体。如果我们想要最终分别获得内参和外参,需要想个办法,先把内参求出来。然后外参也就随之解出了。现在我们把单应性矩阵写成三个列向量的形式:

    其中,λ是标量。

    我们知道r1和r2是世界坐标系沿x和y轴的旋转向量,所以两者之间是正交的,且模长为1,可得出两个约束条件:

    约束条件1:r1和r2的点积为0,即:

    约束条件2:r1和r2的模长为1,即:

    将r1和r2用h1,h2和内参矩阵A表示,即:

    接下来将约束条件替换为h1,h2和内参矩阵A的表示,则有:

    其中,h1和h2已通过单应性矩阵求解出来,未知量就是内参矩阵A了。

    内参阵A包含5个参数:α,β,u0,v0,γ。那么如果我们想完全解出这五个未知量,则需要3个单应性矩阵。3个单应性矩阵在2个约束下可以产生6个方程。这样可以解出全部的五个内参了。大家想一下,我们怎样才能获得三个不同的单应性矩阵呢?答案就是,用三幅标定物平面的照片。我们可以通过改变摄像机与标定板间的相对位置来获得三张不同的照片。(当然也可以用两张照片,但这样的话就要舍弃掉一个内参了γ=0)。

    下面我们做一些数学上的变换,计算内参矩阵。

    首先令:

    从上式中可以发现B是一个对称阵,所以B的有效元素只剩下六个(因为有三对对称的元素是相等的,所以只要解得下面的6个元素就可以得到完整的B了),让这六个元素构成向量b。

    这个方程组的本质与用h和A组成的约束条件方程组是一样的。

    得到矩阵B之后我们就可以计算内参矩阵A,很简单,内参矩阵中有5个未知参数,结果如下:

    6.4. 基于内参矩阵估计外参矩阵

    通过上面的计算,我们已经得到了相机的内参矩阵A,根据下式:

    进行化简,即可得到相机的外参矩阵。

    上述的推导过程是基于理想情况下的解,从几何推导上证明了张氏标定的可行性,并没有物理意义。在实际应用中,一般使用极大似然估计进行结果进行改善。

    6.5. 极大似然参数估计

    首先我们回顾下极大似然估计:极大似然估计是一种估计总体未知参数的方法。它主要用于点估计问题。所谓点估计是指用一个估计量的观测来估计未知参数的真值,即在参数空间中选取使得样本取得观测值的概率最大的参数。

    例如:有两个外形完全相同的箱子,甲箱中有99只白球,1只黑球;乙箱中有99只黑球,1只白球。一次实验取出一只球,该球是黑球。问题是:黑球从哪个箱子中取出的?

    第一印象是:黑球最像是从乙箱中取出来的,这个推断是符合人们的经验事实。“最像”即为“极大似然”之意,这种想法被称为“极大似然原理”。

    现在我们构建极大似然函数:

    在上述过程中未考虑镜头畸变的影响,现在我们来考虑透镜畸变的影响,由于径向畸变的影响相对较明显,所以主要考虑径向畸变参数,根据经验,通常只考虑径向畸变的前两个参数k1,k2就可以(增加更多的参数会使得模型变的复杂且不稳定)。实际求解中,通常把k1,k2也作为参数加入上述函数一起进行优化,待优化函数如下所示:

    那怎么使这个函数最小呢?张氏标定法运用了解决多参数非线性优化问题的LM算法,我们接下来给大家进行介绍。

    6.6.优化方法

    上一节中我们介绍到极大似然求解时,我们提到了LM算法。如果要优化的问题为线性的可以直接对目标函数求导,并且令其等于零,以此求得其极值,并通过比较求取全局最小值(Global Minimizer),并将其最为目标函数的解。但是如果问题为非线性,此时我们通常无法直接写出其导数形式(函数过于复杂),因此不去试图直接找到全局最小值,而是退而求其次通过不停的迭代计算寻找到函数的局部最小值(Local Minimizer),并认为该局部最小值能够使得我们的目标函数取得最优解(最小值),这就是非线性最小二乘的通常求解思路。很显然,在张氏较正中优化问题并不是线性的,我们需要通过迭代来求最优解。

    那如何进行迭代计算呢?

    6.6.1. 迭代方法

    4、如果达到代终止条件(达到最大迭代次数或函数值/自变量变化非常小),则迭代结束,可以认为此时对应的目标函数值就是最小值。

    5、如果没有达到迭代终止条件,按如下方式更新自变量,并返回第2步。

    因此,不同的优化算法的不同主要体现在增量的更新方式上。如果采用不合适的更新方式,其实很容易陷入局部最小值。

    梯度下降法大家已经在机器学习中接触过,我们现在根据LM算法的发展,依次介绍:牛顿法,高斯牛顿法和LM算法。

    6.6.2. 牛顿法

    牛顿法主要用来解决非线性优化问题,其收敛速度比梯度下降速度快。主要思想是:在现有的极小值估计值的附近对目标函数做二阶泰勒展开,进而找到极小点的下一个估计值,反复迭代直到函数的一阶导数小于某个接近0的阀值。

    2.hessian矩阵

    牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。下图中红线表示牛顿法,绿线表示梯度下降法。

    牛顿法的缺点是包含Hessian矩阵的计算,在高维度计算Hessian矩阵需要消耗很大的计算量,甚至无法计算。

    6.6.3. 高斯牛顿法

    高斯牛顿(Gauss-Newton)法是对牛顿法的一种改进,它用雅克比矩阵的乘积近似代替牛顿法中的二阶Hessian 矩阵,从而省略了求二阶Hessian 矩阵的计算。下面来看看高斯牛顿法是怎么做的。

    高斯牛顿法虽然不用求Hessian矩阵,减小计算量,但是这个算法还是不完美。首先在牛顿法中,hessian矩阵是可逆的,而在高斯牛顿法中,用来近似Hessian矩阵的可能是奇异或病态的,会导致算法不收敛;另外,我们采用泰勒展开进行推导,泰勒展开只适合在较小范围内近似,如果步长较大,泰勒近似就不准确,也会导致算法不收敛。

    6.6.4. LM法

    Levenberg-Marquardt(LM)法在一定程度上修正了高斯牛顿法的缺点,因此它比高斯牛顿法更加鲁棒,不过这是以牺牲一定的收敛速度为代价的--它的收敛速度比高斯牛顿法慢。

    下面来看看LM算法到底怎么修正高斯牛顿法的缺点的?

    LM算法中定义的步长为:

    其中,I是单位矩阵,μ是一个非负数。如果μ取值较大时,μI 占主要地位,此时的LM算法更接近一阶梯度下降法,说明此时距离最终解还比较远,用一阶近似更合适。反之,如果 μ取值较小时,H 占主要地位,说明此时距离最终解距离较近,用二阶近似模型比较合适,可以避免梯度下降的“震荡”,容易快速收敛到极值点。因此参数 μ不仅影响到迭代的方向还影响到迭代步长的大小。

    设x初值为x0,根据经验可以设置u的初值u0为:

    LM采用的搜索方法是信赖域(Trust Region)方法,因为高斯牛顿法中采用近似泰勒函数只在展开点附近有较好的近似效果,如果步长太大近似就不准确,因此我们应该给步长加个信赖区域,在信赖区域里,我们认为近似是有效的,出了这个区域,近似会出问题。

    那么如何确定信赖区域的范围呢?比较常用的方法是根据我们的近似模型跟实际函数之间的差异来确定。使用如下因子来判断泰勒近似是否足够好:

    其中,分子是实际函数迭代下降的值,分母是近似模型下降的值。如果 ρ 接近于1,认为近似比较准确,可以扩大信赖范围;如果 ρ 远小于1,说明实际减小的值和近似减少的值差别很大,也就是说近似比较差,需要缩小信赖范围.

    下面我们通过一个示例来看下LM算法的流程:

    上述优化过程中的阈值参数只是作为示例使用的经验值,也可以自己指定。

    LM算法可以一定程度避免系数矩阵的非奇异和病态问题,可以提供更鲁棒、更准确的步长。因此LM算法在相机标定、视觉SLAM等领域中应用非常广泛。

    6.7. 标定流程

    张氏标定就是利用一张打印的棋盘格,然后对每个角点进行标记其在像素坐标系的像素点坐标,以及在世界坐标系的坐标,张氏标定证明通过4组以上的点就可以求解出H矩阵的值,但是为了减少误差,具有更强的鲁棒性,我们一般会拍摄许多张照片,选取大量的角点进行标定。具体过程如下:

    • 打印一张棋盘格标定图纸,将其贴在平面物体的表面.
    • 拍摄一组不同方向棋盘格的图片,可以通过移动相机来实现,也可以移动标定图片来实现。
    • 对于每张拍摄的棋盘图片,检测图片中所有棋盘格的特征点(角点,也就是下图中黑白棋盘交叉点,中间品红色的圆圈内就是一个角点)。我们定义打印的棋盘图纸位于世界坐标系zw=0的平面上,世界坐标系的原点位于棋盘图纸的固定一角(比如下图中黄色点)。像素坐标系原点位于图片左上角。

    • 因为棋盘标定图纸中所有角点的空间坐标是已知的,这些角点对应在拍摄的标定图片中的角点的像素坐标也是已知的,如果我们得到这样的N>=4个匹配点对(越多计算结果越鲁棒),就可以根据LM等优化方法得到单应性矩阵H,进而得到相机的内参,外参等信息。

    7. 双目标定

    对于双目立体视觉,有两个摄像头。它们就像人的一双眼睛一样,从不同的方向看世界。两只眼睛中的图像的视差,让我们对世界有了三维的认识。

    双目标定不仅要计算出每个摄像头的内部参数,还需要通过标定来测量两个摄像头之间的相对位置(即右摄像头相对于左摄像头的三维平移 t 和旋转 R 参数)。

    两摄像头之间的旋转矩阵和平移矩阵可以由下式求出:

    其中,R为两摄像头间的旋转矩阵,T为两摄像头间的平移矩阵。Rr为右摄像头经过张氏标定得到的相对标定物的旋转矩阵,Tr为右摄像头通过张氏标定得到的相对标定物的平移向量。Rl为左摄像头经过张氏标定得到的相对相同标定物的旋转矩阵,Tl为左摄像头经过张氏标定得到的相对相同标定物的平移向量。

    我们在直观上感受下旋转矩阵和平移矩阵的意义:

    对于R,首先用T把左摄像机坐标系平移到右摄像机坐标系上(即两坐标系远点重合)。然后在同一参考系下的两个旋转矩阵相乘,表示世界坐标先向右旋转到Rr ,再向左旋转Rl。那么两次旋转后得到的旋转,就是右摄像机旋转到左摄像机所需的旋转矩阵R。

    对于T,先用R对左坐标系旋转一下,把左右两摄像机调成平行,然后直接平移向量相减,即得到。两摄像机之间的平移向量T。

    得到双目标定的结果,我们就可以进行立体校正,立体匹配,三维重建的内容。


    总结:

    1. 相机标定的意义

      建立世界坐标系和像素坐标之间的关系,可用于三维重建,图像校正等

    2. 成像原理

      小孔成像

    3. 相机成像模型

      世界坐标系:目标物体位置的参考系,是为了更好的描述相机的位置创建的

      相机坐标系:站在相机角度的坐标系

      图像坐标系:以图像中心为原点的坐标系

      像素坐标系:以图像左上角为原点的坐标系

      坐标系之间的转换:刚体变换-- 透射变换—离散化

      内参:描述相机内部属性的参数

      外参:决定相机坐标与世界坐标系之间相对位置关系

    4. 图像畸变

      径向畸变:沿着透镜半径方向产生的畸变

      切向畸变:透镜本身与相机传感器平面或图像平面不平行而产生

    5. 相机标定方法分类

      传统的标定方法,自标定法,基于主动视觉的标定方法

    6. 张氏标定法

      利用棋盘格图像对相机进行标定:单应性矩阵,利用约束条件求解内参矩阵,根据内参矩阵估计外参矩阵,利用极大似然方法估计参数,优化方法:牛顿法,高斯牛顿法和LM算法

      标定流程:

      • 打印一张棋盘格标定图纸,将其贴在平面物体的表面.
      • 拍摄一组不同方向棋盘格的图片,可以通过移动相机来实现,也可以移动标定图片来实现。
      • 对于每张拍摄的棋盘图片,检测图片中所有棋盘格的特征点。

      • 因为棋盘标定图纸中所有角点的空间坐标是已知的,这些角点对应在拍摄的标定图片中的角点的像素坐标也是已知的,如果我们得到这样的N>=4个匹配点对(越多计算结果越鲁棒),就可以根据LM等优化方法得到单应性矩阵H,得到相机的内参,外参等信息。

    7. 双目校正

      双目较正,就是利用单目校正得到每个相机的参数后,在计算两个相机之间的相对位置。

    展开全文
  • 在学习数学三角函数值的时候,大家都知道...任意锐角的正弦等于它的余角的余弦,任意锐角的余弦等于它的余角的正弦,通常用符号sin表示。正弦sinθ也可以理解为顶角度数为θ的单位等腰三角形与单位等腰直角...

    在学习数学三角函数值的时候,大家都知道sin这个符号,通常在计算三角函数的时候会用到,而且还有特定的公式来计算函数值,同时这也是一个重要的知识点,下面我们一起了解一下sin40度怎么算吧。

    9bc136af5347687e1909033d535508a8.png

    弦值是在直角三角形中,对边的长比上斜边的长的值。

    任意锐角的正弦值等于它的余角的余弦值,任意锐角的余弦值等于它的余角的正弦值,通常用符号sin表示。正弦sinθ也可以理解为顶角度数为θ的单位等腰三角形与单位等腰直角三角形的面积之比。正弦值的特殊角是直接有结果的。例如:sin30°=1/2,sin45°=√2/2,sin60°=√3/2,sin90°=1,sin180°=0,sin0°=0,sin270°=-1。但是有些不是特殊角,就需要我们计算出结果了,例如:sin40度,因为40度这个角不是特殊角,所以近似算法为:sin40°=sin45°-sin45°*(45-40)π/180=√2/2-5√2π/360≈0.645和计算器算出来的0.643很接近。

    519063011e4d8db864fd95aaf8aaaea3.png

    三角函数是基本初等函数之一,是以角度为自变量,角度对应任意角终边与单位圆交点坐标或其比值为因变量的函数常见的三角函数包括正弦函数、余弦函数和正切函数。三角函数一般用于计算三角形中未知长度的边和未知的角度,在导航、工程学以及物理学方面都有广泛的用途。

    展开全文
  • 在学习数学三角函数值的时候,大家都知道...任意锐角的正弦等于它的余角的余弦,任意锐角的余弦等于它的余角的正弦,通常用符号sin表示。正弦sinθ也可以理解为顶角度数为θ的单位等腰三角形与单位等腰直角...
  • 常见的 QGraphicsItem

    万次阅读 多人点赞 2016-11-07 19:47:51
    简述QGraphicsItem 类是 QGraphicsScene 中所有 item(图元)的基类。它提供了一个轻量级的基础,用于编写自己的自定义 item。其中包括:定义 item 的几何形状、碰撞...常见图元 QGraphicsSimpleTextItem 详细描述 示例
  • matlab常见的运算函数

    千次阅读 2016-09-08 21:11:17
      expand()可以将表达式展开 collect(f,x)按照x合并同类项 factor()因式分解 Simplify()将表达式最简化 f=simplify(f) ...也可以替换多个变量,例如:subs(cos(a)+sin(b),{a,b},[sym(...
  • 表达式求算法

    千次阅读 2015-03-20 11:16:46
    快速精确的对数学表达式求 http://www.ibm.com/developerworks/cn/java/j-w3eva/ 快速精确的对数学表达式求 使用这个方便的 applet ,您就能一步一步的计算数学表达式了 对于未经...
  • 满意答案cd3668652013.11.17采纳率:56%等级:12已帮助:7305人现在数学课本只涉及一些特定可算的角,如15,30,45,60,75,90度角。由三角函数公式可以计算出准确。...诱导公式sin(-a)=-sin(a)cos(-a)=cos(a...
  • 插值法实现sin函数:%calculate and print the sine function%input: x%output: sin(x) similarfunction y = sin2(x)%save a copy of xx_temp = x;%calculate the interpolation polynomial%save the coefficientn =...
  • sin(π/2-α)= cosα;cos(π/2-α) = sinα; sin(π/2+α) = cosα;cos(π/2+α)= -sinα;sin(π-α) = sinα;cos(π-α) = -cosα; sin(π+α).倒数关系:tanα ·cotα=1sinα ·cscα=1cosα ·sec...
  • 前言 研究各种常见的数学条件...限定条件以简单变形形式给出,如已知\(tan\theta=2\),求\(\cfrac{sin2\theta-\cos^2\theta}{1+\sin^2\theta}\)的。 已知\(\cfrac{\sin\theta-\cos\theta}{\sin\theta+\cos\the...
  • Python中的默认参数

    千次阅读 2017-02-20 22:57:10
    本文主要内容翻译自:点击打开链接Python处理默认参数的方式是少数几个难住Python初学者的问题之一(当然通常也就难住第一次)。造成这种困惑的主要原因是当你使用一个可变的对象作为默认参数时,也就是说,这个...
  • oracle 常见问题

    千次阅读 2007-04-24 15:15:00
    可以查询字段的 select * from all_tables where table_name like '%' select * from all_tab_columns where table_name='??'   11. 怎样得到触发器、过程、函数的创建脚本? desc user_source ...
  • oracle 常见函数

    千次阅读 2007-04-24 15:23:00
    SQL> select sin(20),sinh(20) from dual;  SIN(20) SINH(20) --------- --------- .91294525 242582598 32.SQRT 返回数字n的根 SQL> select sqrt(64),sqrt(10) from dual;  SQRT(64) SQRT(10) -------...
  • 以下示例说明一些常见的自定义,例如修改刻度的放置位置、更改刻度标签的文本和格式,以及旋转刻度标签。 更改刻度位置和标签 创建 x,将其指定为 200 个介于 -10 和 10 之间的线性间隔。创建 x 的余弦函数 ...
  • 这类题目往往需要将非特殊角拆分,然后最后一步约掉含有非特殊角的代数式,就得到了最终的常见的互余,倍角等 \((\cfrac{\pi}{4}+\theta)+(\cfrac{\pi}{4}-\theta)=\cfrac{\pi}{2}\);\((\cfrac{\pi}{3}+\...
  • python之常见内建模块

    2020-04-14 14:13:08
    math模块 方法 描述 f loor 向下取整 ...圆周率,其约:3.141592653589793 ...自然常数,为数学中一个常数,是一个无限不循环小数,且为超越数,其约为2.71828。...sin 正弦 cos 余弦 ...
  • 75度角的正弦是(√2+√6)/4。正弦是在直角三角形中,对边的长比上斜边的长的。任意锐角的正弦等于它的余角的余弦...75度的正弦值sin75°=(√6+√2)/4≈0.9659sin15°=(√6-√2)/4、cos15°=(√6+√2)/4、t...
  • 定义以个类型时,我们使用“struct”关键字,这些类型主要在“UnityEngine... 点乘 a*b=|a|*|b|cos,|a|和|b|是向量的模;通过计算两个向量的点乘积,可以粗略判断当前物体是否朝向另一个物体,只需要极端当前物体的
  • 1.求一个向量是另一个向量的顺时针还是逆时针 使用Vector.dot()点积的来判断。 注意传入时的必须统一,例如判断一个...设原来的点对应的为α,则x=1cosα,y=1sinα. 所求新坐标为(m,n),对应的角为α-θ,则m=...
  • Go 表达式求

    2019-05-19 15:42:10
    示例:表达式求器 本篇将创建简单算术表达式的一个求器。 定义接口和类型 开始,先确定要使用一个接口 Expr 来代表这种语言的任意一个表达式。暂时没有任何方法,稍后再逐个添加: // Expr: 算术表达式 type ...
  • google aviator表达式求引擎

    千次阅读 2018-11-15 16:52:16
    Aviator是一个高性能、轻量级的 java 语言实现的表达式求引擎, 主要用于各种表达式的动态求。现在已经有很多开源可用的 java 表达式求引擎,为什么还需要 Avaitor 呢? Aviator的设计目标是轻量级和高性能,相比...
  • C++常见库函数

    千次阅读 2018-05-11 14:44:14
    C++常用库函数 1、常用数学函数 ... 函数原型功能返回值int abs(int x)求整数x的绝对值绝对值double acos(double x)计算arcos(x)的计算结果double asin(double x)计算arsin(x)的计算结果double atan(double...
  • 三角函数常见基本公式

    千次阅读 2018-12-02 14:08:45
    正弦(sin) 余弦(cos) 正切(tan或tg) 余切(cot或ctg) 正割(sec) ...
  • Android开发之View绘制sin函数

    千次阅读 2014-10-23 23:54:19
    大家都知道,sin函数并不是我们常见的直线,圆之类的那么好画。它是一条蚯蚓似的曲线。 小鹿先让大家了解一下绘制原理,不管每一条直线,它都有点吧?意思是说每条直线都是一点一点的连接起来,sin曲线也是如此,...
  • 四元数的常见运算

    2019-09-01 14:54:41
    假设四元数虚部在前,实部在后 1. 四元数与旋转变量 四元数和旋转向量有很直接的转换关系。...\mathbf{q}=\left[\mathbf{u} \sin \frac{\theta}{2} \quad \cos \frac{\theta}{2}\right] q=[usin2θ​cos2θ​] 2. ...
  • Matlab--蒙特卡洛方法求pi

    千次阅读 2020-08-13 22:13:45
    Matlab--蒙特卡洛方法求pi 蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值...
  • python常见系统模块

    千次阅读 2020-12-23 09:02:12
    常见系统模块 为了方便程序员开发代码,Python提供了很多内置的模块给程序员用来提高编码效率。常见的内置模块有: os模块 sys模块 math模块 random模块 datetime模块 time模块 calendar模块 hashlib模块 hmac模块 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,201
精华内容 4,480
关键字:

常见的sincos值