久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

MATLAB GUI拖動(dòng)點(diǎn)調(diào)試曲線:從鼠標(biāo)事件到樣條插值的實(shí)時(shí)交互實(shí)現(xiàn)

MATLAB GUI拖動(dòng)點(diǎn)調(diào)試曲線:從鼠標(biāo)事件到樣條插值的實(shí)時(shí)交互實(shí)現(xiàn) 簡(jiǎn)介MATLAB圖形用戶(hù)界面GUI開(kāi)發(fā)中自由拖動(dòng)點(diǎn)調(diào)試曲線是一個(gè)典型實(shí)戰(zhàn)案例。這套源碼資源提供了完整可運(yùn)行的工程支持用戶(hù)用鼠標(biāo)拖動(dòng)曲線上的數(shù)據(jù)點(diǎn)并自由平移、縮放坐標(biāo)軸實(shí)時(shí)調(diào)整曲線形態(tài)適用于數(shù)據(jù)分析、模型擬合與教學(xué)演示。資源共7個(gè)文件以.m主程序和.fig界面文件為核心另含多個(gè)txt數(shù)據(jù)文件與說(shuō)明文檔分別保存點(diǎn)坐標(biāo)和補(bǔ)充操作說(shuō)明壓縮包整體僅27KB輕量便攜。已有3925人瀏覽學(xué)習(xí)。通過(guò)運(yùn)行該工程讀者不僅能掌握GUIDE界面設(shè)計(jì)、回調(diào)函數(shù)編寫(xiě)、圖形句柄和axes屬性操作等核心技能還能理解鼠標(biāo)事件響應(yīng)與坐標(biāo)變換的實(shí)現(xiàn)思路結(jié)合工程自帶的坐標(biāo)數(shù)據(jù)文件可完整實(shí)踐從讀取數(shù)據(jù)、交互編輯到保存結(jié)果的流程并可將修改后的點(diǎn)坐標(biāo)輸出到文本文件便于后續(xù)分析與二次開(kāi)發(fā)是一份實(shí)踐性很強(qiáng)的MATLAB交互式編程參考。1. 拖動(dòng)點(diǎn)調(diào)試曲線把“改參數(shù)、跑一遍、看曲線”的循環(huán)壓縮到秒級(jí)做擬合和調(diào)參的人基本都有過(guò)這種經(jīng)歷代碼里把某個(gè)系數(shù)從 0.5 改成 0.6點(diǎn)運(yùn)行盯一會(huì)兒曲線再改回 0.5再跑一遍。參數(shù)和曲線之間隔著一次完整的腳本執(zhí)行思路最好的時(shí)候全浪費(fèi)在來(lái)回切換上?;?MATLABGUI 自由拖動(dòng)點(diǎn)調(diào)試曲線的資源解決的正是這件事把控制點(diǎn)直接擺在圖上鼠標(biāo)按住就能拖曲線按新的控制點(diǎn)實(shí)時(shí)重建。調(diào)參從改代碼變成了拖點(diǎn)一次調(diào)整從分鐘級(jí)縮到秒級(jí)。適合做曲線擬合、插值調(diào)試、點(diǎn)位標(biāo)注的從業(yè)者和學(xué)生也更適合那些需要反復(fù)試探參數(shù)的場(chǎng)景比如信號(hào)波形整形、邊界點(diǎn)微調(diào)、樣條插值預(yù)覽。2. 搭建手寫(xiě) GUI 骨架控件布局、句柄存儲(chǔ)與兩套坐標(biāo)系2.1 為什么用手寫(xiě) figure 而不是 GUIDE 或 App Designer很多人第一反應(yīng)是用 GUIDE 拖控件老版本里也確實(shí)方便。但 GUIDE 生成的是 .fig 文件加自動(dòng)生成的代碼骨架后期版本維護(hù)停在半兼容狀態(tài)改布局要回到圖窗編輯器里操作版本管理很難受。App Designer 適合做正式交付的工具不過(guò)啟動(dòng)和回調(diào)鏈路比手寫(xiě)重不少做調(diào)試類(lèi)小工具反而礙事。這個(gè)資源采用的是手寫(xiě) figure 的方式。所有控件、坐標(biāo)軸、回調(diào)函數(shù)都寫(xiě)在一個(gè)文件里從創(chuàng)建窗口到處理鼠標(biāo)事件全在代碼里可見(jiàn)哪里不對(duì)改哪里沒(méi)有黑匣子。對(duì)一個(gè)調(diào)試工具來(lái)說(shuō)這個(gè)可讀性比界面生成器重要得多。2.2 主窗口骨架坐標(biāo)軸、控制面板和句柄結(jié)構(gòu)先寫(xiě)一個(gè)干凈的窗口骨架把坐標(biāo)軸和控制面板鋪好。后面所有拖拽邏輯都掛在這個(gè)窗口上。function demoDragCurve() % 主函數(shù)創(chuàng)建窗口、坐標(biāo)軸和控制面板 fig figure(Name, 拖動(dòng)點(diǎn)調(diào)試曲線, ... NumberTitle, off, ... MenuBar, none, ... ToolBar, none, ... Position, [100 100 880 600]); % 左、下、寬、高 ax axes(Parent, fig, ... Position, [0.07 0.15 0.72 0.72], ... % 相對(duì) fig 的比例位置 Box, on, NextPlot, add); % add 允許疊加繪圖對(duì)象 grid(ax, on); xlim(ax, [0 10]); ylim(ax, [0 10]); xlabel(ax, 時(shí)間); ylabel(ax, 數(shù)值); ctrlPanel uipanel(Parent, fig, ... Position, [0.83 0.15 0.14 0.72], ... % 右側(cè)控制面板 Title, 控制); uicontrol(Parent, ctrlPanel, Style, pushbutton, ... String, 載入數(shù)據(jù), ... Position, [12 300 84 30]); % 面板內(nèi)像素坐標(biāo) uicontrol(Parent, ctrlPanel, Style, popupmenu, ... String, {spline, linear, pchip}, ... Position, [12 240 84 30]); % 插值方式選擇 % 用 handles 統(tǒng)一存句柄方便回調(diào)讀取 handles struct(); handles.fig fig; handles.ax ax; guidata(fig, handles); % 寫(xiě)入圖窗的 guidata end這段代碼里有幾個(gè)參數(shù)值得說(shuō)明。axes 的 Position 用的是相對(duì)窗口的比例值這樣窗口拉伸時(shí)坐標(biāo)軸跟著縮放但要注意這會(huì)給后面坐標(biāo)轉(zhuǎn)換埋一個(gè)坑第 5 章會(huì)專(zhuān)門(mén)講。NextPlot設(shè)為add是為了讓后續(xù)多次 plot 和 set 不覆蓋當(dāng)前坐標(biāo)軸內(nèi)容如果默認(rèn)的replace沒(méi)改每次重繪都會(huì)把上一幀曲線清掉。右側(cè)面板用 uipanel 包起來(lái)按鈕在這個(gè)面板內(nèi)部使用絕對(duì)像素定位避免和左側(cè)坐標(biāo)軸的位置計(jì)算混在一起。2.3 兩套坐標(biāo)系鼠標(biāo)像素點(diǎn)與數(shù)據(jù)坐標(biāo)的轉(zhuǎn)換拖拽的核心障礙是 MATLAB 給的是 figure 里的像素坐標(biāo)而曲線畫(huà)在 axes 的數(shù)據(jù)坐標(biāo)里。兩套坐標(biāo)系不統(tǒng)一點(diǎn)就會(huì)“偏”在鼠標(biāo)下面拖動(dòng)時(shí)明顯錯(cuò)位。function dataPt pixelToData(ax, figPt) % 把 figure 的像素坐標(biāo)轉(zhuǎn)換成 axes 的數(shù)據(jù)坐標(biāo) axPos getpixelposition(ax); % 相對(duì) figure 的位置單位像素 axXLim xlim(ax); axYLim ylim(ax); dataPt(1) axXLim(1) ... (figPt(1) - axPos(1)) / axPos(3) * (axXLim(2) - axXLim(1)); dataPt(2) axYLim(1) ... (figPt(2) - axPos(2)) / axPos(4) * (axYLim(2) - axYLim(1)); endgetpixelposition返回的是坐標(biāo)軸在 figure 內(nèi)部的像素矩形[x y w h]x 和 y 是左下角位置。鼠標(biāo)位置通過(guò)get(fig, CurrentPoint)拿到它返回的也是 figure 客戶(hù)區(qū)坐標(biāo)系的坐標(biāo)。兩個(gè)都在同一坐標(biāo)系下做減法比例縮放后落到數(shù)據(jù)坐標(biāo)。有個(gè)細(xì)節(jié)是這段代碼里沒(méi)有處理坐標(biāo)軸方向反轉(zhuǎn)的情況默認(rèn) axes 的 XDir、YDir 都是normal如果有人改了方向轉(zhuǎn)換公式要換成axXLim(2) - ...的形式。一般調(diào)試工具不需要反轉(zhuǎn)坐標(biāo)軸反了就會(huì)踩坑第 5 章會(huì)有類(lèi)似案例。2.4 句柄存儲(chǔ)習(xí)慣handles 結(jié)構(gòu)體的正確打開(kāi)方式這個(gè)資源里的回調(diào)函數(shù)很多每個(gè)回調(diào)都需要訪問(wèn)坐標(biāo)軸、控制點(diǎn)數(shù)據(jù)、當(dāng)前拖拽狀態(tài)。常見(jiàn)做法是用guidata(fig, handles)在窗口上掛一個(gè)結(jié)構(gòu)體回調(diào)里用guidata(fig)取回。但要注意guidata一次只能存一個(gè)變量所以要把 UI 句柄和業(yè)務(wù)數(shù)據(jù)分開(kāi)或者統(tǒng)一放在一個(gè)結(jié)構(gòu)體里別零散地往 guidata 里塞多個(gè)變量后面的guidata調(diào)用會(huì)把前面的覆蓋掉。data struct(); data.ctrlPts [1 2; 3 6; 5 4; 7 8]; % 控制點(diǎn)坐標(biāo)每行一個(gè)點(diǎn) data.dragIdx 0; % 當(dāng)前拖拽的控制點(diǎn)索引0 表示未拖拽 data.mode spline; % 當(dāng)前插值方式 guidata(fig, data); % 覆蓋寫(xiě)入我一般會(huì)把 UI 句柄存在 handles 里、業(yè)務(wù)數(shù)據(jù)存在 data 里兩個(gè)結(jié)構(gòu)體分別 attach 到窗口的不同字段或者干脆合成一個(gè)大的 handles 結(jié)構(gòu)體內(nèi)部用handles.data區(qū)分。合成一個(gè)的好處是回調(diào)只有一個(gè)入口缺點(diǎn)是句柄更新時(shí)要把整個(gè)結(jié)構(gòu)體重寫(xiě)一遍。對(duì)于這個(gè)資源這種小工具合成一個(gè)更省事。3. 鼠標(biāo)狀態(tài)機(jī)命中測(cè)試、拖拽反饋與三段回調(diào)協(xié)作3.1 命中測(cè)試怎么判斷鼠標(biāo)“抓到”了哪個(gè)控制點(diǎn)拖動(dòng)的前提是先選中。鼠標(biāo)按下去的時(shí)候要把鼠標(biāo)位置和所有控制點(diǎn)的位置做距離判斷離哪個(gè)最近就認(rèn)為拖哪個(gè)。閾值很重要太近了鼠標(biāo)微抖就會(huì)脫手太遠(yuǎn)了會(huì)誤抓。function idx hitTestControlPoint(ax, dataPt, ctrlPts, tolPix) % 返回鼠標(biāo)命中的控制點(diǎn)索引未命中返回 0 axPos getpixelposition(ax); axXLim xlim(ax); axYLim ylim(ax); % 把像素容差轉(zhuǎn)換成數(shù)據(jù)坐標(biāo)容差x/y 兩個(gè)方向分別算 tolDataX tolPix / axPos(3) * (axXLim(2) - axXLim(1)); tolDataY tolPix / axPos(4) * (axYLim(2) - axYLim(1)); % 歸一化歐氏距離消除 x/y 尺度差異 d sqrt(((ctrlPts(:,1) - dataPt(1)) / (tolDataX eps)).^2 ... ((ctrlPts(:,2) - dataPt(2)) / (tolDataY eps)).^2); [~, idx] min(d); if d(idx) 1 idx 0; % 最近點(diǎn)也超出容差判定未命中 end end這里用歸一化歐氏距離而不是直接算像素距離是因?yàn)樽鴺?biāo)軸的 x 和 y 方向數(shù)據(jù)范圍經(jīng)常差很多。比如 x 從 0 到 100y 從 0 到 1直接算距離時(shí) y 方向的偏差幾乎被忽略鼠標(biāo)在 y 方向偏了很多仍然會(huì)命中同一控制點(diǎn)。除以各自方向的容差后兩個(gè)方向的影響被拉平。tolPix一般取 8 到 15 像素比較合適太小費(fèi)勁太大誤觸。3.2 三段回調(diào)Down、Motion、Up 分工拖拽的完整狀態(tài)機(jī)是鼠標(biāo)按下時(shí)進(jìn)入拖拽態(tài)移動(dòng)時(shí)更新控制點(diǎn)位置并重繪松開(kāi)時(shí)退出拖拽態(tài)并把最終數(shù)據(jù)寫(xiě)回。三個(gè)事件缺一不可。fig.WindowButtonDownFcn (src, evt) onDown(src, evt); fig.WindowButtonMotionFcn (src, evt) onMotion(src, evt); fig.WindowButtonUpFcn (src, evt) onUp(src, evt);WindowButtonDownFcn在 figure 上掛載鼠標(biāo)在窗口內(nèi)任意位置按下都會(huì)觸發(fā)不只有坐標(biāo)軸區(qū)域。這樣命中測(cè)試失敗時(shí)也可以做一些額外處理比如在曲線附近按下時(shí)新增一個(gè)控制點(diǎn)這個(gè)后面會(huì)講。function onDown(src, ~) data guidata(src); figPt get(src, CurrentPoint); dataPt pixelToData(data.ax, figPt); data.dragIdx hitTestControlPoint(data.ax, dataPt, data.ctrlPts, 10); if data.dragIdx 0 set(src, Pointer, crosshair); % 拖拽時(shí)改變光標(biāo)形狀 data.offset dataPt - data.ctrlPts(data.dragIdx, :); end guidata(src, data); end這里記錄了一個(gè)offset表示鼠標(biāo)點(diǎn)和控制點(diǎn)之間的初始偏差。如果不記錄這個(gè)偏差鼠標(biāo)按下后控制點(diǎn)會(huì)立刻跳變到鼠標(biāo)所在位置準(zhǔn)確說(shuō)就是“卷”一下細(xì)看會(huì)不自然。記錄偏差后拖拽過(guò)程中控制點(diǎn)始終保持在鼠標(biāo)相對(duì)位置手感更穩(wěn)。3.3 Motion 回調(diào)拖動(dòng)過(guò)程中的實(shí)時(shí)位置更新Motion 回調(diào)是觸發(fā)頻率最高的一個(gè)鼠標(biāo)每移動(dòng)一個(gè)像素都會(huì)調(diào)用。它內(nèi)部只做讀取、計(jì)算、更新三件事不做任何 IO 操作更不能彈對(duì)話框否則拖起來(lái)會(huì)卡到懷疑人生。function onMotion(src, ~) data guidata(src); if data.dragIdx 0 return; % 沒(méi)有拖拽目標(biāo)直接返回 end figPt get(src, CurrentPoint); dataPt pixelToData(data.ax, figPt); % 應(yīng)用偏移量讓控制點(diǎn)保持在鼠標(biāo)按下去的相對(duì)位置 newPos dataPt - data.offset; data.ctrlPts(data.dragIdx, :) newPos; % 更新控制點(diǎn)顯示和曲線 updateCurve(src, data); guidata(src, data); endupdateCurve放在下一章詳細(xì)展開(kāi)。這里先說(shuō)一個(gè)常見(jiàn)問(wèn)題Motion 回調(diào)里guidata的寫(xiě)回頻率很高如果updateCurve內(nèi)部再觸發(fā)坐標(biāo)軸重新計(jì)算范圍兩個(gè)重計(jì)算疊加幀率就會(huì)明顯下降。所以u(píng)pdateCurve里要手動(dòng)設(shè)置XLimMode和YLimMode避免每次 set 都觸發(fā)自動(dòng)限域這是后面避坑章的重點(diǎn)。3.4 Up 回調(diào)收尾與數(shù)據(jù)落盤(pán)function onUp(src, ~) data guidata(src); if data.dragIdx 0 data.dragIdx 0; % 清空拖拽狀態(tài) set(src, Pointer, arrow); % 恢復(fù)光標(biāo) % 此時(shí)可以把控制點(diǎn)數(shù)據(jù)導(dǎo)出到基工作區(qū)方便外部腳本使用 assignin(base, ctrlPts, data.ctrlPts); end guidata(src, data); endassignin(base, ...)把控制點(diǎn)數(shù)據(jù)寫(xiě)到 MATLAB 基工作區(qū)這是調(diào)試工具里很實(shí)用的一個(gè)習(xí)慣。拖完點(diǎn)數(shù)據(jù)直接在工作區(qū)里可見(jiàn)后續(xù)要拿去擬合或保存都不用手動(dòng)導(dǎo)。缺點(diǎn)也很明顯基工作區(qū)被反復(fù)覆蓋如果外面已經(jīng)有一個(gè)同名變量會(huì)被靜默覆蓋所以我會(huì)在賦值前先evalin(base, exist(ctrlPts, var))檢查一下存在就重命名。4. 曲線隨點(diǎn)實(shí)時(shí)重建數(shù)據(jù)綁定、增量重繪與端點(diǎn)鎖定4.1 數(shù)據(jù)怎么組織控制點(diǎn)、曲線點(diǎn)、顯示對(duì)象三者分離拖動(dòng)調(diào)試的核心數(shù)據(jù)結(jié)構(gòu)是控制點(diǎn)、重采樣點(diǎn)、繪圖對(duì)象三者的映射關(guān)系??刂泣c(diǎn)是人操作的輸入重采樣點(diǎn)是控制點(diǎn)經(jīng)過(guò)插值后的曲線數(shù)據(jù)繪圖對(duì)象只是把這兩者畫(huà)到坐標(biāo)軸上。三者不能混在一起不然每次更新都不知道改的是數(shù)據(jù)還是顯示。data.ctrlPts [1 2; 3 6; 5 4; 7 8]; % 控制點(diǎn)可拖拽 data.xq []; % 插值后曲線的 x data.yq []; % 插值后曲線的 y data.ctrlLine []; % 控制點(diǎn)散點(diǎn)對(duì)象 handle data.curveLine []; % 曲線對(duì)象 handle初始化時(shí)把這兩個(gè)繪圖對(duì)象創(chuàng)建好存到 data 里避免每次重繪都重新 plot。重新 plot 會(huì)產(chǎn)生新的對(duì)象舊對(duì)象如果不刪就堆積刪了再建又是開(kāi)銷(xiāo)而且對(duì)象句柄一變后續(xù)所有回調(diào)都要重新獲取。用set更新已經(jīng)存在的對(duì)象是最省事的路徑。4.2 增量重繪用 set 而不是 delete plot重繪的核心代碼只有幾行但選對(duì)方法差別很大。function updateCurve(fig, data) % 重繪控制點(diǎn)和插值曲線 xq linspace(min(data.ctrlPts(:,1)), max(data.ctrlPts(:,1)), 200); yq interp1(data.ctrlPts(:,1), data.ctrlPts(:,2), xq, data.mode); % 更新已有對(duì)象的數(shù)據(jù)不創(chuàng)建新對(duì)象 set(data.ctrlLine, XData, data.ctrlPts(:,1), ... YData, data.ctrlPts(:,2)); set(data.curveLine, XData, xq, YData, yq); drawnow limitrate; % 限制重繪頻率拖拽時(shí)保持流暢 endinterp1的mode參數(shù)支持linear、spline、pchip等在這個(gè)資源里由右側(cè)面板的 popupmenu 控制。drawnow limitrate是 MATLAB 在拖拽場(chǎng)景里一個(gè)很有用的命令它允許圖形系統(tǒng)以不低于一定幀率的方式合并刷新避免每個(gè)鼠標(biāo)事件都觸發(fā)一次完整重繪。比起 delete 掉舊線再 plot 新線set方法繞過(guò)了對(duì)象創(chuàng)建和銷(xiāo)毀的開(kāi)銷(xiāo)同時(shí)保留了對(duì)象上綁定的回調(diào)和其他屬性。性能差距在幾百個(gè)點(diǎn)的時(shí)候不明顯控制點(diǎn)一多、插值采樣點(diǎn)一多差距立刻拉開(kāi)。4.3 端點(diǎn)鎖定與拖動(dòng)模式邊界保護(hù)的常用做法實(shí)際調(diào)試中不是所有控制點(diǎn)都能隨便拖。首尾端點(diǎn)很多時(shí)候承擔(dān)邊界約束拖走了曲線整體會(huì)被拉飛。這個(gè)資源里加了一個(gè)模式開(kāi)關(guān)在面板上用下拉框切換。data.mode free; % free: 所有點(diǎn)可拖; fixEnd: 首尾鎖定; add: 靠近曲線時(shí)新增點(diǎn)處理邏輯放在updateCurve之前還是在onMotion里修改坐標(biāo)之后、寫(xiě)回 guidata 之前。function applyDragMode(data) if strcmp(data.mode, fixEnd) % 把首尾端點(diǎn)還原為初始位置只允許中間點(diǎn)拖動(dòng) data.ctrlPts(1, :) data.initPts(1, :); data.ctrlPts(end, :) data.initPts(end, :); end end這里注意一個(gè)順序問(wèn)題先還原端點(diǎn)再插值重繪最后寫(xiě)回 guidata。如果先重繪再還原Motion 回調(diào)密集觸發(fā)時(shí)連續(xù)兩次回調(diào)之間數(shù)據(jù)不一致曲線端點(diǎn)會(huì)來(lái)回抖。我踩過(guò)這個(gè)坑視覺(jué)上就是端點(diǎn)“呼吸”一樣地跳動(dòng)非常詭異。三種模式的行為對(duì)比整理成一張表模式控制點(diǎn)行為適用場(chǎng)景free所有控制點(diǎn)均可拖動(dòng)自由形狀擬合fixEnd首尾端點(diǎn)固定只能拖中間邊界條件固定的插值add靠近曲線按下鼠標(biāo)時(shí)新增控制點(diǎn)增加局部細(xì)節(jié)add模式需要額外改命中邏輯hitTest 未返回有效控制點(diǎn)且鼠標(biāo)距離曲線小于一定閾值時(shí)就把鼠標(biāo)位置作為新控制點(diǎn)插入到最近兩個(gè)控制點(diǎn)之間。插入后要重新排序控制點(diǎn)數(shù)組保證 x 單調(diào)遞增否則interp1會(huì)報(bào)錯(cuò)或產(chǎn)生不可預(yù)期的曲線翻轉(zhuǎn)。排序邏輯[data.ctrlPts, sortIdx] sortrows(data.ctrlPts); % 更新其他和索引相關(guān)的狀態(tài)不用unique去重是因?yàn)閕nterp1不允許重復(fù) x 值但新增點(diǎn)一般不會(huì)完全重合。真重合了interp1會(huì)直接報(bào)錯(cuò)回調(diào)鏈斷裂界面假死這是第 5 章要講的坑之一。5. 拖動(dòng)調(diào)試常見(jiàn)問(wèn)題四個(gè)翻車(chē)現(xiàn)場(chǎng)與排查思路5.1 坑拖動(dòng)時(shí)曲線卡成幻燈片CPU 飆高現(xiàn)象控制點(diǎn)拖動(dòng)明顯滯后鼠標(biāo)已經(jīng)移開(kāi)很遠(yuǎn)曲線還在慢慢跟。打開(kāi)任務(wù)管理器MATLAB 進(jìn)程 CPU 占用接近單核滿(mǎn)載。原因Motion 回調(diào)里每次set都觸發(fā)了坐標(biāo)軸的XLimMode和YLimMode自動(dòng)重算。拖動(dòng) 200 毫秒產(chǎn)生上百次事件坐標(biāo)自動(dòng)限域就被觸發(fā)了上百次每次還要連帶通知網(wǎng)格、刻度等一堆監(jiān)聽(tīng)者。重繪消耗全耗在自動(dòng)計(jì)算上了。解決在初始化坐標(biāo)軸時(shí)顯式鎖定自動(dòng)限域模式。代碼里加兩行set(ax, XLimMode, manual, YLimMode, manual);手動(dòng)限域并不影響程序里主動(dòng)調(diào)用xlim(ax, [0 10])反而讓每次重繪只更新數(shù)據(jù)內(nèi)容不觸發(fā)坐標(biāo)范圍重排。從那以后我每次建調(diào)試用坐標(biāo)軸第一件事就是鎖限域。5.2 坑窗口縮放或坐標(biāo)軸移動(dòng)后點(diǎn)抓不準(zhǔn)現(xiàn)象窗口還開(kāi)著的時(shí)候拖拽一切正常一旦用戶(hù)手動(dòng)拉大窗口或者把坐標(biāo)軸拖到新位置再點(diǎn)控制點(diǎn)光標(biāo)位置和控制點(diǎn)之間出現(xiàn)固定偏移。原因pixelToData里用了getpixelposition(ax)正確做法是每次鼠標(biāo)事件發(fā)生時(shí)實(shí)時(shí)獲取。如果有人在初始化時(shí)把坐標(biāo)軸的像素位置緩存下來(lái)了窗口一變化緩存就失效鼠標(biāo)坐標(biāo)換算出來(lái)的數(shù)據(jù)坐標(biāo)整體偏移。解決不要在初始化時(shí)緩存getpixelposition的結(jié)果。在pixelToData函數(shù)內(nèi)部每次實(shí)時(shí)去取。同時(shí)如果窗口允許縮放還要處理SizeChangedFcn里坐標(biāo)軸位置的重新計(jì)算否則即使實(shí)時(shí)取值坐標(biāo)軸的 Position 和實(shí)際像素位置的映射關(guān)系也會(huì)亂。更穩(wěn)妥的是一開(kāi)始設(shè)Resize, off調(diào)試工具一般不需要窗口縮放鎖住窗口尺寸最省心。5.3 坑相鄰控制點(diǎn)距離太近鼠標(biāo)一按就抓錯(cuò)點(diǎn)現(xiàn)象兩個(gè)控制點(diǎn)靠得很近明明想拖 A 點(diǎn)鼠標(biāo)按下去抓起來(lái)的是 B 點(diǎn)拖動(dòng)時(shí)兩個(gè)點(diǎn)一起跳。原因命中測(cè)試用了歸一化距離后直接取最小距離的索引。兩個(gè)點(diǎn)距離小于容差時(shí)鼠標(biāo)只要在兩者之間就會(huì)抓到其中某一個(gè)而且min總是返回索引小的那個(gè)造成偏置。解決命中測(cè)試?yán)锛右粋€(gè)“唯一性檢查”最近距離和第二近距離的比值接近 1 時(shí)判定為歧義不命中任何點(diǎn)而是把鼠標(biāo)位置作為新點(diǎn)插入。這樣既避免了誤抓又順手實(shí)現(xiàn)了第 4 章的add模式。閾值經(jīng)驗(yàn)值最近距離小于第二近距離的 70% 時(shí)才確認(rèn)命中否則按未命中處理。5.4 坑快速連續(xù)拖動(dòng)時(shí)控制點(diǎn)突然跳回原位現(xiàn)象拖動(dòng)速度一快控制點(diǎn)偶爾會(huì)跳回按下之前的位置再繼續(xù)拖又正常了間歇性出現(xiàn)。原因BusyAction默認(rèn)是queueMotion 事件在系統(tǒng)忙時(shí)排隊(duì)處理。回調(diào)里取到的CurrentPoint是最后一個(gè)排隊(duì)事件的鼠標(biāo)位置但guidata寫(xiě)回的數(shù)據(jù)可能還在上一個(gè)回調(diào)的中間狀態(tài)。數(shù)據(jù)讀寫(xiě)在回調(diào)邊界上對(duì)不上就會(huì)出現(xiàn)一次回退。解決把 figure 的BusyAction設(shè)為cancel讓新的鼠標(biāo)事件打斷舊的未完成回調(diào)而不是排隊(duì)等。set(fig, BusyAction, cancel);還有一個(gè)間接坑只是設(shè)了 cancel 還不夠onMotion里如果調(diào)用了會(huì)彈窗或等待的函數(shù)比如msgbox、keyboard一樣會(huì)造成回調(diào)鏈斷裂。調(diào)試工具的回調(diào)里永遠(yuǎn)不要放這些真要輸出提示用fprintf寫(xiě)到命令行就夠了。6. 更順手一點(diǎn)鍵盤(pán)微調(diào)、撤銷(xiāo)棧與拖拽驗(yàn)證流程拖動(dòng)能解決大范圍調(diào)整但精細(xì)對(duì)準(zhǔn)的時(shí)候鼠標(biāo)很難把控制點(diǎn)精確推到目標(biāo)坐標(biāo)。我的習(xí)慣是給每個(gè)控制點(diǎn)加鍵盤(pán)微調(diào)支持選中一個(gè)控制點(diǎn)后按方向鍵可以一次移動(dòng) 0.05 個(gè)單位按住 Shift 再按方向鍵移動(dòng) 0.01。這樣拖拽負(fù)責(zé)大調(diào)鍵盤(pán)負(fù)責(zé)精調(diào)兩者結(jié)合控制點(diǎn)定位很少出偏差。fig.WindowKeyPressFcn (src, evt) onKey(src, evt); function onKey(src, evt) data guidata(src); if data.dragIdx 0 return; end step 0.05; if ~isempty(evt.Modifier) any(strcmp(evt.Modifier, shift)) step 0.01; end switch evt.Key case leftarrow data.ctrlPts(data.dragIdx, 1) data.ctrlPts(data.dragIdx, 1) - step; case rightarrow data.ctrlPts(data.dragIdx, 1) data.ctrlPts(data.dragIdx, 1) step; case uparrow data.ctrlPts(data.dragIdx, 2) data.ctrlPts(data.dragIdx, 2) step; case downarrow data.ctrlPts(data.dragIdx, 2) data.ctrlPts(data.dragIdx, 2) - step; otherwise return; end updateCurve(src, data); guidata(src, data); end撤銷(xiāo)棧的實(shí)現(xiàn)也值得加。拖動(dòng)過(guò)程中數(shù)據(jù)被高頻覆蓋不可能每一步都存歷史。我選擇在onUp里記錄一次快照每次完整拖拽只入棧一個(gè)歷史狀態(tài)棧上限 30 條。撤銷(xiāo)時(shí)彈出棧頂恢復(fù)控制點(diǎn)數(shù)據(jù)并重繪。這樣既不會(huì)因?yàn)楦哳l寫(xiě)入拖垮性能又能在誤拖之后用 CtrlZ 找回原狀。data.undoStack [data.undoStack, oldPts]; if length(data.undoStack) 30 data.undoStack(1) []; end最后一個(gè)習(xí)慣是強(qiáng)制驗(yàn)證。我做完這類(lèi) GUI 工具都會(huì)寫(xiě)一個(gè)自動(dòng)化回放測(cè)試把拖拽過(guò)程中記錄的控制點(diǎn)快照按順序回放每次回放都調(diào)用updateCurve并檢查曲線數(shù)據(jù)是否越界、有無(wú) NaN、interp1是否報(bào)錯(cuò)?;胤抛咭槐闆](méi)報(bào)錯(cuò)這個(gè) GUI 才算可交付。從那以后我每次改完回調(diào)代碼都會(huì)強(qiáng)制跑一遍回放流程不跑完不碰下一個(gè)功能省掉了后面大量鼠標(biāo)手動(dòng)復(fù)測(cè)的時(shí)間希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲成人在线播放| 久热九九| 丁香五月色情| 中文人妻av高清一区| 熟妇亚洲一区二区三区| 亚洲精品国语在线播放| 国产精品熟女丝袜一区二区| 久久大香蕉97| 亚洲少妇色| 2017大香蕉| 久久综合女优| 麻豆久久久久久久久丝袜 | 天天日天天爽| www.夜夜| 国产无码精品高清| 91痴汉| 久久夜黄色无码A级大片| 久久爱超碰网| 99色在线| 欧美国产日韩清纯唯美| 围产精品一区二区三区视频播放| 欧美视频一区二区三区| 无码久| 岛国成人av在线播放网址| 熟妇人妻丰满久久久久久久无码| 久久草在线综合视频| 亚洲av噜噜噜噜噜噜| 久久精品国产72国产精品福利 | 深夜福利黄片| 91性网| 色悠久久久av| 久久综合日韩亚洲欧美| 中文字幕性感少妇av| 精品成人动漫一区二区| 色五月激情网| 国产激情在线| 青青草乱入乱欲视频在线观看| 99无码视频| 乱伦AVxx| 欧美刺激色黄片免费看| 久久香蕉综合一本到3atv| 久久久亚洲| 久久久无码视频| 99精品无码| 久久欧洲| 丝袜喷水在线| 级做a爱无码性色永久免费| 欧美骚少妇| 久久99手机免费视频| 美国久久一二三四| 欧美很很操视频| 国产麻豆一级精品视频| 亚洲精品久| 思思热久久成人| 不卡超碰护士AV在线免费播放| 98精品国产乱码久久久久久| 久草热制服丝袜在线观看| 热久久九九热| 屁股久久久久久| 欧美性爱日韩高清| 后入国产| 午夜啊啊| 久9re热视频这里只有精品| 久久亚洲一区女同性恋中文字幕 | yy少妇精品久久| 青青国产在线拍揄自揄拍| 免费精品人妻一区二区三| 亚洲色诱惑| 欧美专区17页| 男人天堂最新手机版在线青青草| 91丨九色丨熟女高潮| 丰满人妻被猛烈进入中| 熟女乱伦A| 欧美色图综合| 人人操人人色人人摸| 午夜操操操| 国产精品经典一卡久久久| 92人人操人人| 艾草av| 98福利在线视频| 国产男女无套97| 极品欧美一区二区三区| 免费1级a做爰片观看| 人人看人人插| 97超碰欧美精品| 秋霞一级视频在线观看免费| 厕所偷拍在线| 三级AV入口| 狠狠2050在线观看| 亚洲欧美综合| 一级二级三级黑人无码| 综合色99| 99久热精品99re6热| 亚洲欧美一区二区三区一猛片| 欧美人体性爱互联网第一页婷婷日本| 日逼视频日本| 一区二区三区四区五区高清无码永久视频 | 久久成人午夜狠狠| 麻豆区久久久久亚| 久久草大香蕉| 精品人妻一区二区免费蜜桃| 国产精品久久久久久久久久久久久久吹| 中文字幕一区电影在线观看| 91 丝袜在线| 国产精品久久久久9999小说| www.伪伪| 天天摸,夜夜摸| 久久久专区| 国产亚洲精品A在线观看下载| 久久久久久久久久8888| 亚洲色图 91| 天天操人人操狠狠插| 精品超碰中文在线| 天天干夜夜| 中文字幕一区 二区三四五 区日 日骚| 欧美十八禁视频| 97人妻免费中文字幕| 久久超碰97| 青草一区二区| 五月天激情四射| 蜜桃一区二区三区| 日韩在线性爱免费视频| 一区二区三区四区姦女| 青青草无码视频| 日韩精品影视| 亚洲日韩美国人妻| 欧美视频一区二区在线| 99热最新网址| 伊人激情| 亚洲美女30b| 2020久久免费视频| 超碰人妻久久人妻中文97| 人妻嗯啊啊在线播放| 婷婷精品视频| 福利大香蕉| 97久久超碰亚洲| 另类天堂| 久久久久久9| 久久激情视频| 97欧美综合| 欧美少妇熟女| 婷婷五月天无码| 以及麻豆国产入口在线观看免费| 免费视频在线一区二区不卡| 国产隔壁老王影院在线| 黑人与人妻| 无码 有码 国产18p| 亚洲男人综合网| 亚洲欧美综合| 一块操欧美性爱| 精品人妻一区二区免费看| 久久久激情| 久久天堂| 欧美91久久久久| 911粉嫩人妻| 清纯唯美亚洲综合| 久久视频少妇美女| 亚洲不卡AV在线| 成 人 A V免费视频在线观看| 日本淫穴在线| 亚洲情色婷婷五月天| 欧美不卡在线一区二区| 日韩黄色小说| 精品97精品97| 国产成人综合网| 人人看黄色视频| 91精品少妇搡搡搡| 少妇诱惑视频| 99热精品在线| 操逼逼中文字幕| 久久岛国| 国产风韵犹存熟妇三区| 久久天天摸| 这里都是精品在线观看| 中文久久一区| 日本精品一区三区| 久久αⅴ| 91一区二匹| 花野真衣| 欧美色图20P| 又黑又大又粗| 久久青青草在线视频| 大香蕉天天看妹子| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | av网页一区二区三区| 日韩精品一二三| 97色涩| 夜夜影视四色| 亚州免费啪啪视频| 先锋影音av先锋一区| 国产激情在线| 日韩97P| 蜜臀AV一区二区三区| 久久久久久久久久黄色网| 校园春色综合| 99.色网| 综合激情五月丁香| www.色婷婷| 欧美亚洲日韩人妻在线观看| 中文字幕激情小说| 东北女人操比视频| 91高潮喷水美女| 黑人中出21连凳花野真衣| 蜜色网色哟哟| 欧美专利1区2区3区4区5区免费| 毛片电影一区二区三区| 免费观看啪视频| 亚洲欧美国产成人综合不卡| 久久性爱网站| 国产粉嫩出水在线播放| 日本一级二级三级网站| 亚洲成人久久美女| a在线观看| 国产精品秘 福利姬在线观看| 思思热在线cao| 欧美黄色大片在线观看| 一级黄色视频网| 天堂俺去俺来也www久久婷婷| 国产黄色视频久久| 亚洲国产av中文字幕久久| 曰韩中文人妻视频| 婷婷av在线中文字幕| 中文字幕精品免费一区二区| 乱伦av国产| 国产精品宅男免费| 91色交| 丁香五六月啪啪| 欧美性爱18观看| 国产精品一区av在线| 欧美精品日韩久久久九| 亚洲精品日韩国产欧美| 91校园春色长篇| 任我爽视频在线观看| 无码视频一区二区| 九七毛片九九毛片| 91美女精品| 日日爱99| 日韩欧美丝袜诱惑| 久久精品72| 亚洲精品一区二区免费在线观看| 久操免费观看| 成人三级片无码| 亚洲色图久久成人| 亚洲国产精品久久久男人的天堂| 精品一区二区三区蜜桃| 亚州操逼图| 色婷婷影院| 99r九九| 熟妇高潮一区二| 97资源站久久| .精品人妻一区二区三| 中文字幕亚洲热播人妻| 亚洲成人av色网| 大香蕉琪琪日本女优不卡| 一本久久久精品| 国产激情av女片自拍| 无码人妻丰满熟妇区毛片| 日韩欧美~中文字| 久久久久亚洲Av无码专区老牛影视 | 国产视频大全| 草草电影院| 亚洲天堂人妻熟妇视频| 91九久| 亚洲天天精品| 中国AV美女| 人妻中文在线| 我爱搞逼综合网| 97AV在线观看| 亚洲欧洲网站免费观看| 欧美熟女妇同| 一级性爱视频免费在线| 开心五月天激情网| 日本精品加勒比海一区| 欧美日韩岛国大片在线观看| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 97色操| 国产成年女人免费视频播放a| 亚洲.欧美.丝袜.中文.综合| 亚洲狠狠入| 亚洲欧洲日韩天堂av| 欧美久久九九| 九月伊人中文字幕| 蜜乳AV.COM| 99国内精品| 久久久夜夜夜| 久久久999网站| 久久精品国产亚洲粉嫩| 欧美久久九九| 天天射夜夜操| 观看视频图片一区二区三区| 蜜乳av一区二区| 99re这里只有精品3| 青娱乐啪啪视频| 九九热精品| 国产熟女一区二区| 亚洲欧美综合色| 蜜臀久久99精品久久久| 欧美中文字幕男人天堂久久精品 | 色综合五月天| 丰满人妻区一区二区三| 国产精品情侣啪啪| 欧美性生活男人的天堂| 伊人久久大香蕉线AV五月天| 人人干黄色| 国产精品亚洲四五区在线观看| 视频国产成人精品日本亚洲18| 奸色色 男人天堂 天天射| 大象AV在线| 激情图片亚洲色图| 人妻丰满熟妇一区二区三| 伊人精品视频| 唐山老熟妇露脸啪啪叫| 色97欧美| 久久综合日韩亚洲欧美| 素人一区二区三区日韩| 亚洲超碰综合网| 99人人干| 国产精品精品系列在线观看| 青青草精玖玖69精品| 先锋激情∨在线视频播放| 97超碰这里只有精品| 欧美麻豆成人同性GⅤ在线| 激情婷婷丁香网| 大香蕉伊人久久| 亚洲97综| 日韩欧美天天爽爽爽天天爽爽| 人妻熟女一区在| 在线αⅴ| 亚洲一区二区av| 久久大香蕉手机高清视频| 国产家庭乱伦性爱视频| 激情小说在线视频| 97超碰人操| 国产精品无码久久久久2025| 日本伦理一区二区| 日日日日做夜夜夜夜无码| 亚欧美色图| 95精品在线| 日韩欧美成人综合在线| 亚洲色性| 亚洲 欧美 另类 日韩 人妻一区 | 大香蕉在线视频15| 国内毛片国产专区二| 成人性交午夜免费片| 青青草精品| 狠狠爱综合网| 蜜臀操逼黄色视频操的好爽| 日韩在线地址一| 亚洲性刺激| 久久超碰亚洲人| 99热婷婷| 久久成人国产| 国产久久成人| 亚洲一区在线观看欧洲| 94色色电影网| 精品人妻一区二区免费看| 亚洲五区熟女| 精品久久久av| 成功精品影院| 亚洲Av无码成人精品国产| 久96热在线观看视频| 91N综合网| 欧美成人综合| 中文字幕诱惑制服人妻丝袜美丝袜美| 国产肏屁眼视频| 亚洲色图超碰在线| 中文字幕五区| 丁香六月激情综合| 伊人久久婷婷| 激情六月天| 国产一级αv免费看片| 亚洲精品一区二区精品| 人人操人人色网| 亚洲欧美洲综合| 午夜福利 成人 91| 不卡六六在线91| 人人操人人射人人干| 91久久18禁| 久久久久9久久久久| 激情深爱五月天| 无码国产精品午夜不卡(| 这里都是精品| 九七毛片九九毛片| 久久一本大香蕉| 老熟女熟妇| 久久久久久性爱视频| 男人的天堂在线有码| 亚洲天堂综合AV| 五月激情小说| 天堂蜜桃无码视频一区二区| oumeisetu综合| 激情自拍 校园春色| 日韩AV电影网站 | 日本二区不卡| 欧美色图 色综合图| 亚洲在饯| 欧美黄色手机在线观看| 久久黄片国产一区二区| 中国zzijzzijzzwww精品| 天天色天天干天天爱| 一级性爱啪啪视频| 三级三久久线久久99久目本WW| 精品性爱无码在线播放| 中文高清一区二区的| http://qxhbdz.com| 青青草在线成人视频| 婷婷色香| 精品国产乱码久久久久久日本公司| 青青草导航在线视频| 天堂性色| 日韩一级成人毛片免费观看| 亚洲综合在线视频| 欧美一区二区在线资源| 91超碰碰在线| 亚洲熟女人妻中文字幕一区二区| 色综合av综合久久| 欧亚乱色熟女一区二区| 色性欧美| 欧美性天天影院| 性欧美91| 欧洲成人性爱视频| 欧美午夜精品久久久久久超碰| 91麻豆天美传媒HD| 青青草原香蕉日本Ap| 久久78| 欧美精品日韩久久久九| 亚洲精品99| 久久久性爱视频| 床戏久久久av一区二区麻豆| 人人看人人插| 狠狠干综合| 91美女视频在线| 欧美啪啪啪91| 欧美成人四级在线播放| 九九九九九九九九九九九免费国产| 91美女在线视频| 久久免费9| 青娱乐亚洲自拍| 国产av高清版| 久操国产在线| 777奇米影视777四色| 欧美性暴力猛交XXXX| 亚洲玖玖爱| 一区二区三区亚洲| 欧洲综合视频| 国产农村妇女毛片精品久久| 亚洲乱伦图片视频| 日韩午夜国产| 日本成a人v网站在线观看| 欧美很很操视频| 男人的天堂在线| 美女熟妇色| 久操综合在线| 成人小电影网站tex| 东京热男人的天堂精品| 91九九九小逼| 久久 国产 无码| 99热亚洲天堂| 天天92av| 久久五月份| 国产精品久久泡妞网站| www久久99| 日韩欧美久久婷婷网站| 黄色性爱网网| 941超碰| 亚洲国产成人精品久久久国产成人一区二区三.| 性欧美另类高清| 欧美日韩资源| 天美av在线观看| 91精品网站| 99热66| 亚洲 欧美 第一页 | 婷婷精品国产欧美精品亚洲人人爽| 亚洲AV性爱电影| 精品国产99| AⅤ片水多多| 嗯阿好爽好紧| 天天躁日日躁成人字幕aⅴ| 色一射色一射| 秋霞一集毛片观看| 97欧美日韩中文| 国产精品欧美日韩久久| 懂色av中文字幕| 日本岛国黄色网址| 婷婷爽人人婷婷爽视频| 中文字幕丝袜人妻| 国产av又色又爽又黄| 风骚少妇视频中文字幕| 五月婷婷丁香| 免费在线看黄片av| 美女毛片999| 色噜噜精品一区二区三| 天美av在线| 人妻熟女字幕一区二区| 91P0RNY大屁股人妻| 乱老熟女一区二区三区| 亚洲欧美日韩精品久| 东北女人高潮视频| 人人综合| 五月天色图| 亚洲av噜噜噜噜噜噜| 中文字幕人妻色偷偷久久皮| 强奸a片网| 亚欧美色| 四虎在线免费视频| 爱射综合| 欧美v亚洲v日韩v最新在线二区| 九九九国产| 九九热超碰97亚洲最新香蕉| 欧美日韩国内不卡| 乱伦强奸区日韩| 加勒比五月天| 思思热在线cao| 久久性爱大全| 国产1024在线播放| 伊人嫩草| 色九九九九| 激情五月天婷婷| 第四色奇米影视777| 久久亚洲日韩国产欧| 91啪9色| 亚州AV无码国产精品| 97天天摸天天爽| 国产性爱欧美性爱在线| 色哟哟国产精品免费网址| 一本一道vs波多野结衣| 东北少妇高潮zzzz| 99re黄 | 老司机福利青青草| 精品丰满熟妇人妻一区| 97精品第3页| 992这里有精品| 中文字幕狠狠玩| AA级电影三区| 男人的天堂 在线一区| 亚洲影视高清第一页| 熟女天天干| 六月婷激情福利天堂69| 久热99| 黄色视频特级毛片| 夜间福利片1000无码| 国产福利一区二| 97色综合中文网| 91天堂丝袜美腿| 91男人天堂网| 伊人精品国产| 超碰97首页| 一区操逼日比视频| 天天综合网日韩| 噜噜噜噜天天狠狠| 日本熟妇自慰性高潮一区二区三区| 九九九九日本| 日夜干射色啊| 色大师网站www永久网站视频| 国产四虎在线| 一区中文字幕二区日韩| 91丝袜在线观看视频在线观看| 怡红院亚洲怡春院av| 成人热久久精品| 日本精品国产视频| 欧美高清无码免费视频高清版| 久久9999 | 亚州男人天堂| av网站免费看| 韩日色费| 逼操网站| 欧美一区二区三区日韩| 五月色网| 大香蕉在线视频15| 绑缚麻绳人妻寝取完整版| 狠插 制服 自拍| 天天天天天超碰| 五月天亚洲网| 综合色区偷拍| 亚洲精品国产精品成人| 日本色色视频网站| 嫖老熟女A片一二三区| av凤凰久久久| 日韩97超碰中文字幕| 久久久啊啊| 91激情网| 激情婷婷黑人91| 97天天综合| 国产午夜福利电影免费在线观看 | 人妻一区二区三区| 97网址97| 999久久久国产精品| 尤物av网站免费在线播放| 国产精品蜜臀久久久久无码AV| 天天干人人干天天日97| 精品色色| 91久久国产综合精品| 久久久久久中文| 欧美天天性| 精品人妻av在线播放| 91精品久久综合熟女| 欧美 亚洲 大香| 天天天乱色综合全| www久久99| 久久免费精彩视频| 先锋激情∨在线视频播放| 自拍偷拍 高清无码| 婷婷色播婷婷| 日韩精品99久久久久久中文字幕 | 亚洲精品男人的天堂| 精品国产一区二区久久| 中文字幕一区二区日韩网| 人妻娇喘 激情视频| 不卡日本一区二区| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 全球成人中文在线| 国产精品久久久视频| 久久九操在线观看| 久久国产AⅤ| 黄色av片三级三级三级免费看| 国产性感骚丝袜在线| 丰满熟女人妻一区二区三五十一路| 欧美第一页| 久久久婷婷婷| 中文欧丝袜诱惑| 国产一区二区三区高清视频| 五月丁香大香蕉| 久久宗合亚洲| 成人自拍三级在线观看| 五月天色图影视| 男女香蕉一区二区| 日韩在线性爱免费视频| 91美女在线精品视频| 怡红院久久老司机| 丁香五月激情综合国产| 欧美日韩国产人人| 免费av在线播放二区| 一区二区久久天天干狠狠| 殴美色网| 大香蕉丝袜一级片| 97日韩欧美亚洲| 91动漫操逼视频| 97人人操人人摸人人爱| 国产高清1234区| 大香蕉综合网| 中文字幕 人妻不满 在线视频| 97av,com| 欧美日韩免费性爱| 91亚洲青青草原精品1区| 超碰97 线线 在现| WWW.操逼.COM| 天天操天天干一区二区| 操B久久| 综合激情二| 99re69| 免费自拍三级综合| 啊啊啊好大好湿| av天堂精品久久| 我中文字幕6区| 欧美性巨大╳╳╳╳╳高跟鞋| 成人久久精品| 东京太热男人的天堂久久久| 在线可观看的黄色网址| 久久精品电影| 日本123区操B视频| 91四海无码日韩欧美| 九九Av| 91天堂| 精品99999久久久久久| 激情文学88| 9超碰免费| 国产传媒操逼视频| 午夜亚洲| 日韩紧密久久| 凹凸久久人人| 国产精选视频| 大香蕉伊人网WWWn0n| 免费久久一级毛片大黄| 欧美性视频二区三区| 在线不卡视频| 久久亚洲中文字幕视频| 亚洲国产青青| 少妇超碰在线| 国产美女裸体秘 永久无遮挡| 亚欧美综合网。| 1024人妻| 精品九九国产无码| 中文字幕成人乱码熟女精品国50| 亚洲天堂色图| 国产AV激情无码久久无码 | 91亚州| 亚州熟妇精品| 东京日日夜夜| 亚洲中文字幕久久人妻| 青草地一本线一区二区三区| 亚洲棕合电彰| 久久99亚洲精品久久99果| 青娱乐国产剧情av一区| 国产精品乱码久久久久久久| 久久亚洲不卡| 色乱二区| 成人五月天丁香激情综合| 亚洲熟女乱色一区二区三区久久久 | 97二区四区| 国产亚洲禁久一区二区| 丰满人妻被猛烈进入中| 蜜臀99久久精品| 麻豆天美传媒在线视频天堂| 大香蕉乱伦视频网| 欧美国产精品| 日韩欧无码一区二区三区免费不卡| 91九九九吃| 啊啊啊啊啊操我视频| www.91久久| 国产福利在线视频网站| 亚洲欧美日韩偷拍色图| 亚洲天在线| 欧美在线视频观看一二三四区高清| 大奶啊啊好爽| 91热爆在线| 欧美经典一区二区三区| 黄色视频高清无码网站| 欧美综合综合| 欧美色道啊| 少妇专区一二三四五| 亚洲熟妇乱女区二区三区| 婷婷五月成人| 国产小u女在线观看| 最新国内自拍av免费| 久久久久久九九九九| 丝袜美腿操av| 中文字幕亚洲在线一区| 日本 色 导航| 亚欧毛片基地国产毛片基地| 91青青草| 97爱亚洲| 夜夜躁狠狠躁日日躁av| 黑人性欧美| 女人18精品一区二区三区| 风月影院男女十八禁| 精品无码人妻一区二区免费蜜桃| 夜夜騷av、一區二區| 国产精品久久9| 精精夜夜| 欧美亚男人的天堂| 三级片大波波| 精品国产91久久久久久一区黄无| 久久久久骚| 四虎永久在线精品免费网址| 色av中文字| 无码99| 殴美综合色88| 久操 高清| 久啪| 国产蜜臀在线| 欧美亚洲天天| 69精品| 人妻精品视频一区二区三区| 精品人妻中文字幕高清| 中国操逼无码| 日本东京热加勒比久久| 国产99久久99热这里只有精品15 | 青青草中日韩在线| 91久久久老司机| 熟女高潮合集-永久久久-成人AV| 91精品国产乱码| 色偷偷综合91久久噜噜| 日韩图色| 日本东京热久久久电影| 中文字幕,人妻,日韩| 国产精品免费日韩| 亚洲天堂99| 亚洲 中文 女同| 麻豆国产成人精品| 成人九九| 黄片免费日韩| 久草免费福利在线播放| www.91色| 亚州精品丝袜-不卡成人免费| 2017大香蕉国产精品久久| 超碰视97中文| …亚洲黄色厕厕女女在线播…| 国内精品嫩模A∨私拍小视频| 一线黄色免费性爱片| 黄片在线免费在线观看| 亚洲 图片 综合91| 久偷拍欧美日韩三区| 校园春色亚洲色图| 日韩三A大片在线观看| 日韩乱插| 天天摸天天碰天天添青青| 亚洲色图第四色| 嗯嗯啊啊操我| 一区二区三区 日韩欧美| 殴美牲| 日韩精品影视| 亚洲?V高清一区二区三区尤物| 国产精品熟女九色九色蜜臀| 五月丁香网站| 日本熟妇色熟妇在线视频播放| 色爱亚洲| 日韩人妻中文视频| 啊啊啊用力在线观看| 亚洲素人综合| 囯戸精品高潮呻吟旡码| 超碰人人妻| 欧美性五月| 东京热视频网| 狠狠狠一区二区三区| 熟女熟妇伦久久影院毛片一区二区| 久久久一区二区三区四区五区| 狠狠色噜噜狠狠狠狠狠色综合久久 | 97视频观看| 97中文综合| www.黄色在线| 欧美日韩资源在线| 亚洲欧美色图片| 超碰精品在线| 亚洲凸凹超碰成人| 欧美性爱精品七区| 亚洲性爱高潮影院| 日本熟妇人妻一区二区三区| 老司机老司机午夜影院| 自拍欧美| 人人操人人色人人摸| 天美av在线观看| 国产久久天堂资源| 97综合在线| 国产夫妻性生活视频| 黄页视频网站野外| 精品国产久久乱码| 免费一级特黄特色大片在线观看看| 久久久久久性爱视频| 色五月AV| 97天天爽| 欧美色图片| 嗯嗯嗯啊啊啊在线免费观看| 97AV在线观看| 欧美极品女人的天堂| 国产精品嫩草久久久久| 91亚洲影院综合| 欧美v日韩v亚洲v最新在线| 盗摄 精品 另类 一区| 青青草这里只有精品| 亚洲欧美国产日本一区二区三区| 俺去啦自拍| 亚洲免费人妻在| 啊啊在线| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 激情综合网五月婷婷五月天| 骚逼自拍99| 成人免费在线网站| 懂色AV网| 久久五月份| 热99这里有精品综合久久| 九九九综合精品| 国产传媒午夜理伦精品| 欧美日韩亚洲高清不卡一区二区三区| 亚洲黄色视频在线观看视频| 嗯嗯啊啊视频一区二区三区| av网站在线观看了| 黑人干亚洲| 9久久精品| 久久国产成人精品国产成人亚洲 | 人人摸人人干| 欧美 亚洲 制服 精品| 国产97在线视频| 中文字幕少妇色 | 国产亚洲精品农村妇女| 大香蕉手机视频| 五月丁香六月婷| 视频不卡中文字幕| 欧美另类自拍 | 九九av| 极品销魂美女一区二区| 欧美日韩婷婷中文| 女人高潮抽搐喷水视频网站| 欧美性暴力| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 精品性爱一二三区| 亚洲资源吧| 99国产精品人妻人伦| 岛国视频一二三区| 九七超碰人人乐| 久久精品一区| 国产热RE99久久6国产精品首| 夜夜嗨视频| 亚洲色图 图片| renqi久久久久久久久久久久| 91一区二区三区蜜桃| 亚洲色综网| 欧美色图私拍91| 啪啪一区| 亚洲国产欧美另类自拍| 超碰97COm中文| 国产日韩欧美| 青青爽| 日韩乱伦视频| 无码精品久久| 亚洲精品人体| 舔人妻中文免费视频| 一区中文字幕二区日韩| 久久五月综合| 99性爱在线观看| 国产精品点击进入在线影院高清 | av强奸乱轮| 九九九免费视频| 密臀国产在线| 久久m| 日韩亚洲美女一区久久| 欧美性爱伊人| 草草影院最新网址| 97超碰人人操人人操| 97久操| 久久久91福利姬| 性色av一区二区| 日韩伦理久 久久 清纯| www.99热| www九九热| 亚洲日韩国产欧美综合v| 日韩免费看在线黄色片| 亚洲国产美女久久久久| 亚洲不雅视频1区二区| 9久9久9久9久视频网站| 久久人妻无码毛片A片麻豆| 91国产大片| 亚洲综合码| 精品无码一区二区| 男人的天堂2018东京热啪啪啪| 九九RE视频在线精品| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 少妇高潮一区二区三区在线| 超碰午夜| 精品人妻一二三四区视频| 97免费免费视频网| 亚洲91亚洲| 少妇与黑人高潮在线| AV天堂电影网| 97一区二区蜜臀| 性色高清在线| 天天综合网91入口| 欧洲乱码视频| 欧美伦乱爱| 裸体美女久久久| 嗯嗯嗯啊啊啊干死我吧| 老女人91| 综合网少妇| 久久精品超碰| 96精品久久久久久久久久| 亚洲情色欧美| 日韩成人私密一级精品av| 久久亚洲中文字幕视频| 亚洲无码成人精品| 国模不卡| 国产精品久久久久综合| 狠狠色婷婷7777久| 97中文超碰| av情色影音| 一区二区视频你懂的| 香蕉av一区二区三区| 欧美日韩精品青青| 激情欧美97| 日韩偷拍一区二区三区| 密乳无码| 五月丁香色色网| 亚洲另类久操网| 中文字幕人妻色偷偷久久皮| 亚州欧美综合| 999精品久久久久久久| 国产精品高潮呻吟av久久4虎| 午夜操逼不卡| 午夜男女爽爽爽在线视频| 一起草av| 日韩午夜国产| 99热这里只有精品1| 亚洲天天操| 国产曰批免费观看久久久| 另类一区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 无码高清专| 亚洲国男人的天堂| 四虎国产成人精品免费一女五男| 中文欧丝袜诱惑| 91爱| 强奸乱伦Av网| 殴美牲| 亚洲国产亚洲天堂| 久久久精品网站| 熟女人妇一区二区三区| 91在线欧色| 亚洲精品黑丝| 亚洲欧美一区二区网址| 人人干人人搞人人摸| 91视频观看网站| 99视频自拍区| 国产精品网址| 99久久这里只有精品| 丝袜天堂网| 一区操逼| 国产少妇肉丝在线观看| A男人的天堂| 校园春色综合网| 久久久免费一级黄片| 东京热一区二区三区四区五区六区| 热久久无毒不卡| 乱操乱伦AV| 在线 制服丝袜中出 人妻| 欧美综合 站| 综合久久少妇中文字幕| 日韩免费看黄片| WWW.加勒比人妻一区不卡.com| JuliaAnnXXX888| 一区二区三区 日韩欧美| 大香蕉 222| 日韩猛交| 中文字幕 国产 精品| 日韩久久艹| 26UUU欧美日本| 久久人妻丝袜一区二区三| 人妻一区视频| 九九热精品免费视频| 久欲AV| 精品中文字幕第一页| 91网站18禁| 强奸乱伦免费网站| 国产丝袜美女诱惑| 国产美女自拍AV| 中文字幕少妇色| 国产成年女黄特黄| 99热18| 色臀aV| 黄色一级视| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 久久老熟女| 欧美人妻色| 亚洲少妇中文字幕网址| 亚洲无码久久久久久久| 亚洲男人天堂2013| 欧美A片中文字幕| 亚洲狼狼干综合1| 亚洲成人黄色在线观看| 国内黄色精品| www.99在线| www.激情| 91老妇女| 都市久久精品激情亚洲| av影片在线观看不卡| 天天爱天天操| 欧美麻豆成人同性GⅤ在线| 亚洲 欧美 第一页| 东京太热久久久| 精品人妻一区二区免费看| 日日骚中文字幕| 九热大香蕉| 国产精品青青草| 一二三区视频在线观看| 久久这里精品国产99丫e6| 日本媚薬中文字幕在线| 韩国午夜理伦三级好看| 欧美后入式| 五月亭亭六月丁香| 亚洲视频精选| 乱欲视频| 久久乐| 51久久夜色精品国产麻豆| 天天色播| 亚洲一二三精品久久网| 亚洲av国产av综合av卡| 狠狠97| 久久草视频污视频| 久久久啊啊| 丁香九月激情啪| 东北丰满熟女国产一区| 性色aV一区二区三区噜噜| 大茄子熟女AV导航| 91红杏| 欧美精品久久| 99精品丰满人妻无码| 大香蕉中文| 嫩草伊人久久精品| 国产精品探花在线| 97 色综合| 亚洲视频一二区| 一区在线观看中文字幕| 亚洲福利影院一区久久| 伊人久久亚洲中文字幕不卡| 欧美很很操视频| av亚欧| 久久精品综合| 啊啊啊好湿国产一二| 日韩 欧美 另类 人妻| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 91蜜臀熟女| 人妻9117c| 中文字幕一区二区三区蜜桃视频| 激情五月婷婷| 夜夜操青青草| 性91| 欧美日韩国产人人| 久久人妻视频网| 操高情无码| 天天激清| 97天天插| 日韩少妇丰满亚洲| 深爱五月婷婷| 天堂中文日本在线观看| 日本欧美中文字幕| 欧美,日韩,中文,另类| 大香蕉宅男伊人| 亚洲综合春色| 日本黄 R色 成 人网站| 国产日韩手机视频在线| 蜜臀99久| 五月天AV资源| 狠狠躁天天躁日日躁| 淫淫总合网| 婷婷深爱五月| 91在线视频免费播放| 一级一性爱免费视频| 97在线/亚洲| 青青伊人这里只有精品| 亚洲aw毛茸茸在线 | 久久大香蕉97| 无码操逼天堂| 亚洲成人精品久久久| 亚洲色人妻综合| 五月天社区| 久久一区二区三区入口| 福利操逼| 色综合V| 久96热在线观看视频| 天天综合网在线观看| 四虎在线视频| 久久婷婷苹果| 精品人妻一区二区三区蜜桃视频| 老女人老91妇女老热女| 欧美精品91| 天天综合网91入口| 亚洲熟妇乱女区二区三区| 亚洲天堂中文字幕无码男同| 91九色首页| 99热99色| 丁香六月婷婷综合| 天天日天天色| 色综合天天| 欧美亚洲玖玖玖| 天天欧美色| 麻豆国产av网| 久久超碰97中文字幕| 亚洲三级网址久久最新| 97日视频| 天堂资源站| 福利大香蕉| 国产一区二区在线看| 96国产精品| 美女网站91| 91小视频| 图片区小说区| 啪啪综合网| 熟女人妻av在线资源,黄色的资源| 久久,精品一二三| 中文字幕一区二区三区蜜臀| 中文字幕一区日韩精| 久九干| 密臀在线免费观看|