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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rectwave.m

?? 矩形波路徑規(guī)劃算法
?? M
字號:
function path = RectWave(map, startPos, endPos)
%map——二維數(shù)組圖 0: passable 1: obstacle
% startPos: Original Position
% endPos:   Target Postion
% Search the shortest path by rect wave propagation algorithm
% Rectwave should search the path from the DTM begin with principal
% neibourgh grids, else it will make zigzag path


%路徑規(guī)劃
    
    %s->Start, G->Goal
    S.x = startPos(1);
    S.y = startPos(2);

    G.x = endPos(1);
    G.y = endPos(2);
    
    DTM = GetDistanceTransform(map, S, G);
    path = FindPathFromDTM(DTM, S, G);
    return;
    
%%%%%%%%%%%%%
%make DistanceTransformMatrix
%+++++++++++++++++++++++++++++++++++++++++++++++++
function  DTM = GetDistanceTransform(map, S, G)

    DTM = Inf * ones(size(map));
    DTM(G.y, G.x) = 0;
    G.cost = 0;
   
    WFT = [];
    WFT = INSERT_NODE(WFT, G);
    cur = G;
 
    while ~(cur.x==S.x & cur.y==S.y) & length(WFT)~=0
        [cur WFT] = GetTail(WFT);
%         plot(cur.x, cur.y, 'k+'); drawnow;
        [WFT DTM] = PropagateWave(map, DTM, WFT, cur);
    end
    return;
%=================================================


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Find path from Distance Transform Matrix
%+++++++++++++++++++++++++++++++++++++++++++++++
function path = FindPathFromDTM(DTM, S, G)

    if DTM(S.y, S.x) == Inf%尋路失敗
        path = [];
        return;
    end
    
    [Ymax Xmax] = size(DTM);
    p = S;
    path = S;

    j = 0; % 0 : start with N4(p) or principal grids;  4: start with ND(p) or diagonal grids
    
    while DTM(p.y, p.x)~=0
        for k = j : j+7
            x = p.x; y = p.y;
            switch(mod(k,8))
                case 0
                    x = x + 1;
                case 1
                    x = x - 1;
                case 2
                    y = y - 1;
                case 3
                    y = y + 1;
                case 4
                    x = x + 1;
                    y = y + 1;
                case 5
                    x = x - 1;
                    y = y - 1;
                case 6
                    x = x + 1;
                    y = y - 1;
                case 7
                    x = x - 1;
                    y = y + 1;
            end
            if x<1 | y<1 | x>Xmax | y>Ymax
                continue;
            end
            if DTM(y,x) == DTM(p.y, p.x)-1
                p.x = x; p.y = y;
%                 j = k;
                break;
            end
        end
        path = [path, p];
    end
%=================================================
    

 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%name: insert_node(): 將節(jié)點插入列表并排序

%%%%%%%%%%=======begining of insert_node=========%%%%%%%%%%%%%%%%%%%%  
function NewWFT = INSERT_NODE(WFT, p)
% p可能在WFT里有重復(fù),卍代碼是刪除WFT重復(fù)p,但實驗表明刪除重復(fù)點反而增加耗時
%     global tag;
%     if tag(p.y, p.x) > 0
%         WFT = Delete(p, WFT);
%     else
%         tag(p.y, p.x) = tag(p.y, p.x)+1;
%     end

%以下代碼是對WFT進行排序,但實驗表明排序也使算法耗時增加
%     if isempty(WFT)    %a new or null list
%         NewWFT = p;
%     else
%         num = length(WFT);
%         while num~=0 & WFT(num).cost<p.cost
%             num = num-1;
%         end
%         NewWFT = [WFT(1:num), p, WFT(num+1:end)];
%     end

%以下代碼是將p直接插入WFT前面,既不排序也不刪除重復(fù)點,但實驗表明耗時反而最少
    NewWFT = [p WFT];
    

%%%%%%%%%%=======end of insert_node=========%%%%%%%%%%%%%%%%%%%%%%


function NewList = Delete(X, List)
    num = length(List);
    while num~=0 & ~(List(num).x==X.x & List(num).y==X.y)
        num = num - 1;
    end
    % 不考慮狀態(tài)增大或者減小嗎?
    NewList = [List(1:num-1), List(num+1:end)];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%function: GetTail(): 從List中取出末尾節(jié)點并修改List
%%%%%%%%%%======= begining =========%%%%%%%%%%%%%%%%%%%%
function [y, newlist] = GetTail(list)
    if isempty(list)
        y = [];
        newlist = [];
    else
        y = list(end);
        newlist = list(1 : end-1);
    end

 %%%%%%%%%%=======end of get_node()=========%%%%%%%%%%%%%%%%%%%%%%     
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%function: Ex_nods(): 擴展節(jié)點
%%%%%%%%%%======= begining =========%%%%%%%%%%%%%%%%%%%%
function [newlist newVmap] = PropagateWave(map, Vmap, openlist, p)
    global tag;
    [Ymax Xmax] = size(map);
    for k = 1 : 8
        x = p.x; y = p.y; d=1;
        switch(k)
            case 1
                x = x - 1;
            case 2
                x = x + 1;
            case 3
                y = y - 1;
            case 4
                y = y + 1;
            case 5
                x = x - 1;
                y = y - 1;
            case 6
                x = x + 1;
                y = y + 1;
            case 7
                x = x - 1;
                y = y + 1;
            case 8
                x = x + 1;
                y = y - 1;
        end
        
        if x<1 | y<1 | x>Xmax | y>Ymax | map(y, x)==1 | Vmap(y, x)<=Vmap(p.y, p.x)+d
            continue;
        else
            Vmap(y, x) = Vmap(p.y, p.x)+d;
            temp.x = x; temp.y = y;
            temp.cost = Vmap(y,x);
            openlist = INSERT_NODE(openlist, temp); 
        end
    end
     newlist = openlist;
     newVmap = Vmap;
    return;
%%%%%%%%%%=======   end  =========%%%%%%%%%%%%%%%%%%%%%%    

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频免费在线| 亚洲一区二区高清| 亚洲国产精品久久久久秋霞影院 | 不卡在线观看av| 91精品久久久久久久久99蜜臂| 中文字幕一区二区三区av| 久久国产精品第一页| 欧美人与禽zozo性伦| 一区二区三区免费网站| 99精品视频中文字幕| 久久久久久免费网| 激情久久五月天| 日韩三级视频在线观看| 亚洲国产成人av好男人在线观看| 成人免费av网站| 久久久久国产精品麻豆ai换脸| 日产国产欧美视频一区精品| 欧美伊人精品成人久久综合97| 国产精品久久久久久久久免费丝袜| 美腿丝袜在线亚洲一区 | 久久精品亚洲麻豆av一区二区| 日韩av一区二| 欧美大尺度电影在线| 一区二区三区精品在线| 色爱区综合激月婷婷| 亚洲视频1区2区| 99久久久久久| 亚洲免费在线电影| 91视频.com| 亚洲午夜久久久久久久久电影网| 色噜噜久久综合| 亚洲国产精品影院| 欧美嫩在线观看| 午夜伊人狠狠久久| 在线播放中文字幕一区| 毛片一区二区三区| 精品福利视频一区二区三区| 久久电影网电视剧免费观看| 欧美大片日本大片免费观看| 久草在线在线精品观看| 久久久99精品久久| 97久久精品人人做人人爽50路| 亚洲色图欧洲色图婷婷| 欧美亚洲一区三区| 日韩电影在线一区| 久久久影视传媒| 91在线小视频| 亚洲成人手机在线| 日韩精品一区二区三区蜜臀| 国产高清成人在线| 有坂深雪av一区二区精品| 欧美日韩性生活| 国产综合久久久久久久久久久久| 国产精品毛片无遮挡高清| 日本乱码高清不卡字幕| 日本免费在线视频不卡一不卡二| 久久这里只有精品首页| 91丝袜美女网| 免费成人美女在线观看| 国产精品久久久久四虎| 欧美高清视频一二三区| 韩国女主播一区| 艳妇臀荡乳欲伦亚洲一区| 日韩欧美在线123| 91在线观看视频| 久久国产精品免费| 一个色在线综合| 精品福利一区二区三区免费视频| 91碰在线视频| 久久 天天综合| 亚洲一区二区三区四区五区黄 | 极品少妇xxxx精品少妇| 亚洲人一二三区| 欧美不卡123| 一本久久a久久精品亚洲| 久久av中文字幕片| 亚洲黄色在线视频| 国产欧美中文在线| 欧美高清视频在线高清观看mv色露露十八 | 日本欧美在线观看| 国产精品第13页| 欧美一区二区三区在线电影| 99久久精品免费精品国产| 精品综合免费视频观看| 亚洲一区二区三区四区中文字幕| 国产欧美日韩在线观看| 欧美一区二区三区在线视频| 在线观看国产精品网站| 成人不卡免费av| 成人免费视频播放| 久久99久久99小草精品免视看| 夜夜揉揉日日人人青青一国产精品| 国产欧美日韩视频在线观看| 欧美一二三四在线| 欧美日韩高清在线| 91国在线观看| 91在线一区二区| 成人免费电影视频| 国产电影精品久久禁18| 国内国产精品久久| 狂野欧美性猛交blacked| 午夜精品aaa| 亚洲五码中文字幕| 亚洲一区二区三区在线播放| 亚洲黄网站在线观看| 亚洲美女屁股眼交| 亚洲免费资源在线播放| 亚洲精品老司机| 亚洲日韩欧美一区二区在线| 亚洲私人影院在线观看| 日韩理论片一区二区| 国产精品久久久久久亚洲毛片| 中文字幕精品一区| 国产精品久久久久久久久久久免费看 | 综合网在线视频| 国产精品―色哟哟| 国产精品久久久久影院| 国产精品久久久久久久久晋中 | 日韩三级精品电影久久久| 日韩一区二区三区在线视频| 日韩欧美在线一区二区三区| 精品福利一二区| 国产日韩欧美在线一区| 国产精品对白交换视频| 亚洲综合清纯丝袜自拍| 日本在线不卡视频| 国产精品自拍三区| 波多野结衣欧美| 欧美性大战xxxxx久久久| 欧美久久久久久蜜桃| 2023国产精品| 成人免费一区二区三区在线观看 | 国产一区二区免费视频| 成人avav在线| 欧美日韩综合一区| 欧美成人伊人久久综合网| 国产日韩欧美麻豆| 一区二区三区产品免费精品久久75| 日韩国产欧美一区二区三区| 国产精品一区二区黑丝| 91无套直看片红桃| 日韩午夜精品电影| 国产精品久久久久毛片软件| 亚洲国产成人av好男人在线观看| 久久99九九99精品| 色婷婷精品大视频在线蜜桃视频| 6080午夜不卡| 国产精品护士白丝一区av| 无码av中文一区二区三区桃花岛| 黄一区二区三区| 欧美系列日韩一区| 久久精品人人做人人综合| 伊人夜夜躁av伊人久久| 国产在线视视频有精品| 7799精品视频| 国产精品久久久久毛片软件| 日本一区中文字幕| 99久久国产综合精品色伊| 日韩手机在线导航| 亚洲女与黑人做爰| 国产一区二区影院| 欧美日韩成人综合| 国产精品国产三级国产| 久久av老司机精品网站导航| 色婷婷久久综合| 国产欧美日韩视频一区二区| 蓝色福利精品导航| 欧美日韩精品系列| 综合色中文字幕| 国产激情精品久久久第一区二区 | 一区二区日韩av| 成人激情小说网站| 久久综合九色欧美综合狠狠| 午夜电影一区二区| 色av成人天堂桃色av| 中文字幕av一区 二区| 国产在线日韩欧美| 日韩一二在线观看| 亚洲va韩国va欧美va精品| 91麻豆精品视频| 国产精品美女久久久久久久久| 国产自产视频一区二区三区| 欧美一区二区视频观看视频| 亚洲不卡在线观看| 欧美私模裸体表演在线观看| 亚洲精品欧美二区三区中文字幕| 国产精品 欧美精品| www久久久久| 国产一区二区三区四区五区美女 | 国产成人av一区二区| 日韩女优视频免费观看| 青草av.久久免费一区| 欧美人与禽zozo性伦| 午夜激情久久久| 69av一区二区三区| 免费成人av在线| 欧美成人精品二区三区99精品| 日韩电影免费在线| 精品国产人成亚洲区| 国产精品一线二线三线|