亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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圖形用戶界面GUI開(kāi)發(fā)中自由拖動(dòng)點(diǎn)調(diào)試曲線是一個(gè)典型實(shí)戰(zhàn)案例。這套源碼資源提供了完整可運(yùn)行的工程支持用戶用鼠標(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ù)編寫、圖形句柄和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. 搭建手寫 GUI 骨架控件布局、句柄存儲(chǔ)與兩套坐標(biāo)系2.1 為什么用手寫 figure 而不是 GUIDE 或 App Designer很多人第一反應(yīng)是用 GUIDE 拖控件老版本里也確實(shí)方便。但 GUIDE 生成的是 .fig 文件加自動(dòng)生成的代碼骨架后期版本維護(hù)停在半兼容狀態(tài)改布局要回到圖窗編輯器里操作版本管理很難受。App Designer 適合做正式交付的工具不過(guò)啟動(dòng)和回調(diào)鏈路比手寫重不少做調(diào)試類小工具反而礙事。這個(gè)資源采用的是手寫 figure 的方式。所有控件、坐標(biāo)軸、回調(diào)函數(shù)都寫在一個(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)先寫一個(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); % 寫入圖窗的 guidata end這段代碼里有幾個(gè)參數(shù)值得說(shuō)明。axes 的 Position 用的是相對(duì)窗口的比例值這樣窗口拉伸時(shí)坐標(biāo)軸跟著縮放但要注意這會(huì)給后面坐標(biāo)轉(zhuǎn)換埋一個(gè)坑第 5 章會(huì)專門講。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)而曲線畫在 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 客戶區(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ì)有類似案例。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); % 覆蓋寫入我一般會(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)體重寫一遍。對(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ù)寫回。三個(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的寫回頻率很高如果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ù)落盤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ù)寫到 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ì)象只是把這兩者畫到坐標(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)銷而且對(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)建和銷毀的開(kāi)銷同時(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)之后、寫回 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)再插值重繪最后寫回 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è)翻車現(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 占用接近單核滿載。原因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í)候拖拽一切正常一旦用戶手動(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寫回的數(shù)據(jù)可能還在上一個(gè)回調(diào)的中間狀態(tài)。數(shù)據(jù)讀寫在回調(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寫到命令行就夠了。6. 更順手一點(diǎn)鍵盤微調(diào)、撤銷棧與拖拽驗(yàn)證流程拖動(dòng)能解決大范圍調(diào)整但精細(xì)對(duì)準(zhǔn)的時(shí)候鼠標(biāo)很難把控制點(diǎn)精確推到目標(biāo)坐標(biāo)。我的習(xí)慣是給每個(gè)控制點(diǎn)加鍵盤微調(diào)支持選中一個(gè)控制點(diǎn)后按方向鍵可以一次移動(dòng) 0.05 個(gè)單位按住 Shift 再按方向鍵移動(dòng) 0.01。這樣拖拽負(fù)責(zé)大調(diào)鍵盤負(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撤銷棧的實(shí)現(xiàn)也值得加。拖動(dòng)過(guò)程中數(shù)據(jù)被高頻覆蓋不可能每一步都存歷史。我選擇在onUp里記錄一次快照每次完整拖拽只入棧一個(gè)歷史狀態(tài)棧上限 30 條。撤銷時(shí)彈出棧頂恢復(fù)控制點(diǎn)數(shù)據(jù)并重繪。這樣既不會(huì)因?yàn)楦哳l寫入拖垮性能又能在誤拖之后用 CtrlZ 找回原狀。data.undoStack [data.undoStack, oldPts]; if length(data.undoStack) 30 data.undoStack(1) []; end最后一個(gè)習(xí)慣是強(qiáng)制驗(yàn)證。我做完這類 GUI 工具都會(huì)寫一個(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
返回資訊列表
日韩A优精品在线观看| 国产精品亚洲免费| 亚洲日韩精品在线播放| 老熟女天天操| 久久久91福利姬| 狠狠色伊人亚洲综合网站色| 精品一区二区啪啪啪| 91色婷婷综合久久中文字幕二区| 麻豆AV96熟妇人妻| 97人人模人人爽人人| 久草尤物| 欧美后入式| 中文字幕人妻丝袜| 五十路六十路七十路熟婆| 精品人妻一区二区三区视频| 操逼日韩无码 | 友优传媒精品在线一区二区| 久久久久久久久久久人妻| 情色五月天网| 美女主播色欲91抠b在线播放| 国产深夜福利| 欧美亚洲涩涩| 蜜桃久久久久久久久久久久| 欧美性爱网97| 亚洲AV无码| 狠狠综合| www.99视频| 91三级理论片播放器| 亚洲人妻精品一区二区| 97人人夜| 中文三一区| 日韩少妇丰满亚洲| 婷婷五月天福利| 人妻激情在线视频| 午夜精品人妻二区三区| 天美精品av| 成人性爱电影一区二区| 911av网站免费观看| 丰满熟妇大乳做爰| 校园春色AV天堂| 9热9热综合网| 青青草狠狠撸| 日本97久久久精品| 熟女丝袜视频| 大香蕉碰碰| 欧美乱伦专区| 久久久久久九九九九| 亚洲欧洲色情高清| 中文字幕一区二区三区蜜臀| av操操不卡| 国产日产欧产美韩系列麻豆免费| 99这里都是精品| 偷拍亚洲情色| 就去色综合| 久久欧美激情| 国产成年女人免费视频播放a| 亚洲高清色综合| 日本色日夜干| 一级成人性爱| 亚洲欧美大香蕉| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 大香蕉宅男伊人| 欧亚日韩三区| 久草久日| 欧美页片| 色99久草| 永久电影三级在线观看| 乱伦系列一区二区| 狠狠综合网| 中文字幕免费看大片| 色色色热| 国产少妇与亚洲av| 国产三级中文字幕粉嫩| 人妻另类 专区 欧美 制服| 天天综合网在线观看| 欧美写真视频一区| 福利操逼| 全免费a敌肛交毛片免费| 国产精品爆乳懂色蜜乳| 黄页网站免费高清在线观看| 色婷婷丁香五月| 国产亚洲色婷婷99精品91| 日本加勒比无码专区一二三| 日日操免费视频| 国产高清视频无码在线| 天天操人人操狠狠插| 日本精品网站在线中文| 久99| 亚洲人妻熟妇三十三区| 一级毛片电影免费看| 亚洲色图殴美色图激情乱伦| 亚洲va综合va国产va中文| 男人的天堂欧美| 色综合大香蕉| 日韩少妇一区二区三区| 9 9无尺码天堂网| 青草精品视频-日本久久久久网站| 日韩人妻一二三区视频| 亚洲中字慕不卡| 国产无码精品成人| 一区二区偷拍拍视频| 亚洲高清男人天堂| 在线一道啪| 亚洲精品人妻在线| 久九干| 色青青久久影视| 亚洲人妻中文高清| 五月天伊人| 国产懂色精品国产av| 99性爱视频| 天天干干天天干干| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 曰韩操B| 为用户提供免费看黄网址在线观看| 91被操| 91香蕉视频在线观看免费| 亚洲精品国产专区在线观看| 日本色色的视频| 欧美天天插| 亚射在线| 加勒比色综合| 欧美亚洲韩国视频十五区 | 色翁荡息又大又硬又粗又爽| 成人八戒网站| 欧洲精品一级二级精品综合视频综合| 试看日韩黄片| 伊人久久AV诱惑悠悠| 三级日本一区二区三区| 亚洲AV无码久久久国产精品| 丰满欧美少妇| 欧美综色欧| 无码天天操| 人妻天堂综合网| 91激情综合| 午夜亚洲WWW湿好大| 99热超碰| 久久久精| 欧美性生活免费网| 搞中出久久| 一区二区三| 久热伊人| 玖玖视频在线资源一区二区三区| 亚洲暴力强奸AV| 激情五月激情综合网| 高清孕妇孕交 交| 天天射天天操天天干天天吃2018| 九色在线熟女国产黑人| 99ri在线视频| 欧美黑人精品在线播放| 天天色图| 欧美一级久久久丰满| 二级久久网| 五月婷婷大香蕉| 女同女同恋久久级三级| 青青草天天亲夜夜操网| 天天看天天日天天操| 亚洲少妇色| 国产男女无套视频免费观看| 男人的天堂视频精品乱在线| 五十路六十路七十路熟婆| 强奸乱伦AV一天堂网| 日韩精品.久久精品.AV女优.天美传媒| 亚洲丰满很很操| 精品午夜福利| 中文字幕日韩国产传媒欧美精品| 中文字幕乱码在线观看| 99re6久热只有精品6在线直播| 久久美女福利是上海美女| 精品久久久久久久久久久久| 上海一级黄片| 亚洲人妻色图| 色天使亚洲综合在线观看| 亚洲限制级| 五月天婷精品激情| 色欲天天综合久久久无码网中文| 大香蕉碰碰| 99re公开精品免费视频| 日韩在线电影| 久久精品人妻一区二区| 国产91福利小视频在线观看 | 60秒免费视频| 中文字幕一区 二区三四五 区日 日骚| 人妻一区二区三区四区视频| 狠色婷婷久久一区二区三区_| 国产精品天堂| 天天天天做夜夜夜夜做| 色妺妺在线视频| 日本熟妇人妻中出视频| 亚洲欧洲无码bt精品合集| 亚洲电影中字一区二区| 欧美性爱一区| 五月激情在线| 俺去俺来也在线www| 欧美色宗合| 国产亚洲99久久精品| 日产中文字幕2020| 亚洲 欧美 精品专区 极品| 欧美在线官网| 国产成人自拍视频在线| 91老司机在线| 婷婷丁香五月综合| 久久超碰国产一区二区三区| 男人的天堂网页| 欧美亚洲日韩16色| 欧美亚洲se91| 超碰 另类 欧美| 91久久精品蜜臀| 色99视频| 2020中文字幕| 性感女人网页在线观看视频| 密臀成人视频久久久| 亚洲九九爱| 欧美一区二区三区成人性生活| 欧美午夜色妇色鬼| 天美传媒在线一区| 免费亚洲国产精品久久一区| 大屁股国产在线视频| 亚洲一二三四区在线免费看视频| 中文字幕国产| 久久最新视频免费观看| 亚洲av热热色| 超碰在线在公开超碰在线在公开| 97资源站国产精品| 91艹| 天天欧美| AV和黑人在线播放| 伊人99热| 老熟女中文字幕高清| 99热线麻豆| 久久夜夜| 狠狠激情综合狠狠操中文字幕| 亚洲午夜AV| 天天亚洲综合| 99re黄 | 欧美国产精品久久九九| 成人乱人伦一区二区| 丝袜性亚洲| 中文字日本乱码| 欧美亚州色的图| 精品熟妇视频一区二区| 一区二区三区男女操逼黄色小电影| 风流老熟女一区二区三区l| 久久亚州大香蕉| 99啪| 日韩免费三级黄片电影| 国产一区二区三区影片| 五月丁香婷婷色| 日韩欧洲操屄视频| 91精品国产麻豆国产自产在| 亚洲欧美综合网站| 欧美性天天| 男人精品区| 久久久性少妇| 五月天综合在线| 精品亚洲国产成人精品| 综合伊人激情| 一区二区视频你懂的| 四虎视频在线观看| 美国aaaaa一级黄片| 久久精品午夜国产亚洲AV无码| 91|九色|国产熟女| 欧洲一区二区三区四区在线观看| 欧美成人A√在线一区二区| 啪啪视频mP4| 欧美激情激情xxxx欧美专区| 日韩97超碰中文字幕| 国语少妇精| 久久久精品日本一道| 亚洲欧美999| 精品久久久久黄少妇| 亚洲成人黄色在线观看| 欧美白嫩女HD| 无码精品久久久天天影视| 小日子操bb在线看| 黄色大香焦1级‘′‘| 深爱伊人影院| 天天干天天日天天射黄色| 69av一区二区三区| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 亚洲九九九九| 夜夜嗨绯色| 九九伊人网| 日韩精品在线放| 亚洲精品久久久久久| 婷婷五月天小说| 日韩字幕一区| 岛国片国产成人亚洲播放| 男人天堂网站| 天天综合网亚洲综合网| 欧洲无码一区二区| 欧美性爱一级操| 精品国产乱码久久久久久日本公司| 91久久久久| 婷婷五月天激情网| 深夜福利黄片| 婷婷九月丁香| 脫衣舞一区二区三区| 99久久9| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 亚洲美女自拍偷拍视频| 99久久精品无码一区二区毛片免费| 91爱做| 涩涩这里只有精品视频| 亚洲欧美一区二区三区在钱蜜桃| 久久久97| 国产白嫩精品久久| 国产精品免费1区2区视频| 亚洲男人的天堂一区二区| 歐美性天天| 成人影 天天操 亚洲| 中日高清无码操逼视频| www.伪伪| 懂色Av一区二区三区| 一级特级aaaa毛片免费观看| 丰满人妻区一区二区三| 伊人天天久久动态图| 男人天堂2030| 人人操人人色网| 少妇久久久久久| 少妇久久| 熟女这里只有精品6| 影音先锋日本一区二区| 思思热久久成人| 国产亚洲精品自在线亚洲情侣| 大香蕉伊人久久| 99成人| 九九九综合精品| 久操操| 欧美性少妇| 亚洲日韩美女丝袜美腿人妻视频| 91高清欧美| 操高情无码| 日韩性爱网址| 久久99手机免费视频| 欧美亚洲厕所精品偷拍91| 天天日B狠狠操| 中文久久96| 先锋音影AV| 亚洲无码一区成人免费午夜| 亚洲日韩精品久久久久一区壹牛 | 涩五月婷婷| 国产aⅴ无码片毛片一级网站| 亚洲国产ⅴ高清在线观看| 日本性感人妻91| 蜜乳AV免费观看| WWW.加勒比人妻一区不卡.com| a级理论午夜日本| 你懂得91| 3571色综合一区二区二区| 日韩丝袜二区| 亚州综合色| 婷婷99狠狠躁天天躁| 国产成人亚洲精品无码古代早漏男 | 女色视频社区| 去干网最新版| 国产视频小说| 欧美精品三级黄片| 人妻熟女一区二区三区在线| 九九久久久九九| 亚洲综合精品国产一区| 日韩av在线精品观看| 98福利在线视频| 欧美性天天影视| 天天综合站| 福利天天都操| 怡红院一区二区熟女人妻| 天堂资源站| 亚洲欧洲精品视频发布| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 骚货人妻偷情自拍在线视频| 亚洲少妇综合| 二色av| 久久久久久999| 丁香六月婷| 91人妻在线视频| 日韩AV色图| 日韩欧美成人综合在线| 日本好吊色视频| 日韩av性爱在线播放| 国产高清不卡视频| 亚洲av无线观看| 亚洲图片小说欧洲| 久久深夜无码| 黄色视频特级毛片| v91av| 粉嫩国产精品久久久| 亚洲熟女精品| 久久婷婷成人综合色怡春院| 欧美AB在线观看| 日韩精品黄片免费观看| 亚洲欧美第一页| 夜夜 中文视频rt| 欧美拳交在线播放| 亚洲天堂无码| 黄色AV免费| 日产精品久久久一区二区| 精品国产一区二区三区久久久蜜臀 | 青草综合| 欧美精品另类人妖xxxx| 91亚洲色人| 中文字幕艹艹| 国内毛片国产专区二| 自拍盗摄一区| 色汉综合| 丁香五月色| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 国产91美女高潮| 蜜臀一二三| 欧美视频一| 色婷婷小说| 麻豆人妻少妇在线免费观看| 高清国产精品福利网站| 收看日本人日bb| 91精品女厕偷拍视频| 18精品一区| 色女免费在线观看视频网址| av天天在线观看| 操老熟女AV| 欧美少妇内射| 在线亚洲精品久久久| 熟妇一区二区三区| 亚州春色| 在线情色电影 91大| 黄色十八禁网站| 亚洲色图国产另类| 欧美激情黑人| 可乐操在线| 麻豆三极片| 国内精品嫩模A∨私拍小视频| 亚洲天堂久久久久久粉红视频| 日韩超碰97| 中国AAAAAA黄色片| www.久久最新地址| 日本人妻A片成人免费看片| 可以免费观看的av| 北京专精特新企业招聘信息| 蜜臀AV成人精品蜜臀| 九七毛片九九毛片| 91色花堂| 欧美亚洲日本视频久久久| 超碰久热| 欧美与日韩97| 亚洲色婷婷久久91| 欧美在线观看综合国产| 日本天堂网| 国产91丝袜在线播放蜜月| 国产女人视频三四五区| 欧美人妻一区| 97中文字幕色| 人妻铁牛TV| 国产伦乱91| 亚洲大色堂| 国产女人视频三四五区| 96久久精品一二三区色欲| 九久久九精品视频| 99夜夜操| 99久久婷婷| 天天操狠狠日夜夜干超碰撸com视频在线观看| 果冻传媒一区二区三区| 国产精品97视频| 91P0RNY大屁股人妻| 99久久亚洲精品无码毛片潘甜甜| 欧美v日韩v亚洲v最新在线| 亚洲精品99| 我想要啊 啊 啊| 中文字幕性感少妇av| 色五月激情AV在线| 再深点灬舒服灬太大了好硬好爽| 人妻激情视频| 黄页视频网站野外| 男人的天堂色偷偷青青草视频婷婷网| 欧美丝袜中文字幕07在线| 成人在线午夜视频一区| 可以免费看黄片的视频| 综合久久97| 久草毛片| 蜜臀aV午夜一区二区三区| 精精品人妻一区二区三区| 日本中文字幕在线视频| 伊人 俄罗斯 a v| 国产亚洲日韩在线三区黑人| 亚洲第一二区另类图| 国产东北女人在线视频| 嫩草91| 五月天激情影院| 亚洲色欧美| 国产综合久久久鬼色| 一区二区三区探花在线观看| 天天躁狠狠躁av| 日本在线视频导航| 超碰欧美| 欧美大色交| 爱射综合| 欧美色性爱| 九九九九久久久久| 久久鲁夜| 天天看综合网| 欧美国产伊人久久久久| 亚洲精品一区二区日本| 精品二999| 97WW精品| www.99视频| 大香焦A片| 操啊国产| 女人天堂av在线播放| 97超碰精品成| 欧美性爱一区| 人人喜人人妻| 久久香蕉影院| 综合啪啪| 国产又大又硬又长又粗| 青青草久久一区网| 中文字幕啊啊啊在线观看视频| 999久久久免费精品国产牛牛| 超碰到97情色| 91激情网| 成人久久精品| 99re只有精品| 亚洲永久永久永久永久一级一级一级精品 | 日韩欧美经典在线观看| 51一区二区三区| 国产精品老熟女一区二区| 无码高清操逼网址| 新97国产超碰| 色 亚洲 91| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 97在线视频免费| 久久久99999久网站| 人妻铁牛TV| 色婷婷综合久久久久中文一区二区| 99色悠悠| 黄色av网站在线播放| 亚洲综合夜色| 国产一级操B视频| 91国产丝袜美女| 在线观看无码三级少妇| 九九色婷婷| 天天透伊人| 亚州宗合另类| 色女网日韩| 1二区9| 欧美爱国产综合、| www.人人摸在线视频| 大香蕉狠狠爱| 无遮挡一级毛片视频免费的| 九色精品视频导航1| 欧美很很操视频| 国产精品内射婷婷一级二| 东京热亚洲一区二区| 亚洲性综合9| 97舔舔| 任你干在线视频| 亚洲黄色电影| 精品成人亚洲午夜电影| 伊人色综合网| 国产亚洲日本| 中文操逼字幕| 亚洲欧美精品91| 青草园大香蕉| 日本操逼视频不卡直接放| 超碰人人干| 强奸熟女一区二区三区| 亚洲AV成人精品网站在AV| 五月丁香六月婷| 久久人爽| 国产一区二区三区视频在线看| 六月丁香网| 国产日韩中文字幕欧美| www.91理论| 精品96久久| 国产毛片片精品天天看视频 | 久久精品国产97欧美精品亚洲| 久久精品国产亚洲AV清纯| 无码又爽又硬又激情免费视频| 老女人老91妇女老热女| 国产多人在线观看视频| 日本不卡高清免v欧美日韩在线观看| 日日骚av| 伊人成人中文字幕久久网| 黄久久| 欧美一级AAAAAAA| 日韩在线人妻网站| 视频二区美腿制服人妻欧美| 天天夜躁日日躁狠狠2002| 一区二区三区四区免费视频| 2025亚洲男人天堂| 在线97在线| 欧美精品一区二区少妇免费A片| 91精品人妻啪啪间| 九久9热| 乱抡国产91| 亚洲欧洲色情高清| 99性爱视频| 麻豆久久一区二区三区| 嗯嗯啊中文字幕| 精品国产AV一区天美传媒| 久久婷婷视频| 99国产精品人妻人伦| 白嫩国模丰满一二三区| 色一射色一射| 中文字幕精品日韩中文字幕| 日韩淫色网| 伊人亚洲国产一成人久久精品,久久| 精品视频一区二区| 亚洲成人妻日韩在线| 五月婷婷啪啪| 日韩欧美操逼xxx| 在线视频资源| 日本中文字幕一区| 欧美制服另类丝袜| 亚洲乱熟女一区二区三区大香蕉| 超碰九区| 99最新日韩偷拍视频| 有码人妻系列| 色综合久久888| 色色色色日本| 牛牛操视频逼| 蜜臀久久99精品久久久久久无删减| 久久伦理视频久久大香蕉视频| 翘臀vidoes| 日本高清久久| 婷婷亚洲天堂| 日韩乱插| 五月婷婷AV| 人人摸人人摸人人干| 岛国片在线播放| 日日操免费视频| 国产强奸乱伦无码视频| 9999久久久| 欧成人精品H无码| 2020中文字幕在线观看| 欧美偷拍| 欧美天天射| 欧美一二三| 97精品| 色综合国产在线观看| 老司机午夜精品视频| 欧美成人免费在线观看| 99re免费| 欧美一级A片不卡视频。| 八戒无码国产午夜福利| 黄骗免费| 九九色影院| 蜜臀在线免费观看在线免费观看| 精品网站9999| 后入福利视频| 国产97免费视频| 日韩精品色呦呦| 中文字幕乱妇免费视频| 91xingse| 婷婷五月天综合网| 婷婷久草| 99精品在线播放| 成人三一级一片aaa| 操屄日韩| 免费的av网| 久久久久久无码人妻中文字幕| 在线中文字幕| 日韩美一区| 亚洲久草AV色图| 午夜理论片在线观看免费| 国产传媒美日韩av| 青青青草原| 日韩大香蕉AV影片| 日本免费专区| 亚洲色图综合网| 大香网伊人久久综合| 国产品精品自在在线午夜免费| 97资源站国产精品| 亚洲免费日韩在线一区二区| 亚州中文字幕超碰97| 99超碰碰| 精品成人av一区二区三区在线| 一本正道久久熟女| 欧美乱欲| 九九在线视频| 久久久亚洲精品中文字幕人妻| 乱伦1色页| 日本大片日本一区二区免费高清| 男人的天堂网免费| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | www.亚洲黄色| 精品区9| 久久中文字幕在线观看| 免费黄色视频网址| 日韩97P| 五月天色图影视| 欧美色女人| 99999精品成人| 久久久久亚洲熟妇熟女| 人人超碰在线观看黄| 日本欧美韩国国产在线| 是还免费视频1727我| 91成人在线免费视频| 91人妻久久久久久久久久久久久| 五月天玖玖资源站| 久操国产在线| 91成人国产综合久久精品蜜月| 色黄污美女啪啪啪免费网站| 久久女同性恋一二区| 久久久久久AV无码免费网站| 91岛国动作片| 国产a级精品| 国产精品久久久久久久毛片1| 亚洲 中文 欧美 日韩 在线| 91爱综合| 操逼操逼逼操操逼91| 欧美96在线|欧| 九九成人精品| 97天天爽| 亚洲黄色a级片| 999久久久免费精品国产牛牛| 久久原创中文| 成 人 影视 一区 二区 三区 四区| 国产亚洲女v在线观看| 国产一区在线看| 久久精品99久久久久久| 九九九网页| 五月婷婷丁香中文字幕| 超碰人人超在线观看| 亚洲一区二区三区春色| 日韩激情啪啪| 美女t无毒不卡不卡| 99操碰| 欧美,亚洲,日韩,v,天堂,手机在线观看| 欧美人妻久久精品二区三区| 亚洲男人的天堂网| 国产一| 久操电影网| 欧美色图亚洲色,麻豆| 尤物视频新赏网鲜网色诱网| 久久国产成人精品国产成人亚洲| 久久产精品一区二区三区电影| 精品九九| 福利社区午夜一区二区| 人妻天堂网| 日韩天天本| 欧美有码亚洲中文字幕一区二区三区四区 | 91精品在线播放| 久久久久骚| 97超碰中文| 日欧亚洲二三区大片不卡| 欧美日韩青操| 1024久久高清视频| 蜜桃久久一区二区| 好湿好紧好爽 视频| 综合亚洲欧美精品日韩?v| 国产成人啪一区二区| www激情| 色欲久久综合| 操逼不卡中文字幕| 日韩成人高清一区二区| 伊人超碰97| 天天射天天| 国产午夜无码片在线观看影视 | 久久粉色| 国产精品黑人一区二区三区| 国产亚洲精品av一区| 91人妻Pr| 麻豆AV96熟妇人妻| 蜜桃AV天堂| 日本成人在线不卡一区二区三区| 亚洲欧洲综合av在线| 色婷网| 欧美成人一区二区| 人人澡人人干| 国产一区二区三区导航| 九九九九88| 揉揉揉夜夜| 久久av一级av少妇av高潮| 99操碰| 韩国毛片一区二区三区| 国内毛片欧美香蕉精品| 亚洲最大无码中文字幕网站 | 91久久久久久久久久久| 欧美国产有色电影| 日本孕妇一区二区视频操逼免费看 | 久草加勒比一区在线| 国产精品久久久久中文字幕| 67194无码不卡| 九九热九九| 九九黄色网| 加勒比综合在线| 日韩AC| 91AV天美在线视频| 国产三级日产三级韩国三级| 白丝少妇一区二区| 天天谢天天干| 亚洲91网站| 探花在线免费观看视频国产一区| 精品国产72| 国产精品久久99日日| 99色日| 深夜激情无码| 老熟女综合网| 成功精品影院| 尤物av网站免费在线播放| 久久香蕉国产传媒一区剧情天美| 老熟女综合| 精品人妻夜夜草| 啪啪啪东京| 97在线青| 六月婷婷综合| 人人摸.人人色| 五月天婷婷社区| 性交一区二区在线播放| 亚洲十八禁止| 看全色黄大色大片免费视频| 国产一级高跟丝袜| 国产激情久久| 97中文字幕色| 婷婷色香伊人| 欧美黄色手机在线观看| 欧美天堂在线| 色香综合天天影视综合 | 精品夜夜澡人妻无码| 日韩美女啪啪一区| 综合网天天| 少妇激情AV| 久久人爽| 情色五月天久久久| 99久久精品国产高潮| 亚洲玖玖爱| 日1区2区3区2020| 久久婷婷一区二| 999亚洲国产视频| 搡老女人老91二区| 成年女人18级毛片毛片免费观看| 人妻少妇三级| 日韩亚洲中文有码视频| 啊啊啊啊啊啊在线看| 加勒比伊人综合| 欧美成人色| www.超碰| 无码少妇精品一区二区60岁老人 | 五月综合久久| 亚洲 中文 欧美 日韩 在线| 亚洲激情av| 欧美91网| 精品久久久久黄少妇| 国产丝袜啪啪| 九九av| 婷婷久久久精品| 嫩草一区二区在线观看| 欧美日韩222| 99热18| 亚洲国产日韩欧美熟妇在线| 日本精品不卡一二三区| 中文字幕交换人妻| 欧美一级特黄淫片在线观看| 精品中文字幕第一页| 久久这里是精品| 强奸乱伦Av网| 日韩无码专区| 神马久久久久眼| 怡红院怡春院| 国产免费一区| 欧美春色| 国产精品久久久久久久久久梁医生| 囯产精品久久久久久久久久梁医生| 家庭乱伦麻豆| 乱欲一区二区| 99这里只有精品| 色大香蕉97N| 日本幼女18+| 亚洲精品第一| 欧美日韩国产成人高清| 国产精品精品系列在线观看| 欧美性爱1080p| 丁香五月成人| 青青草玖玖爱| 国色综合天| 欧美日韩操操操| 超碰日本97美女人妻人人玩人人爱 | 亚洲黄片免费在线播放| 日本欧美亚洲高清在线看| 在线女人91| 午夜噜噜噜| 亚洲国产麻豆一区二区三区| 国产视频一区二区在线| 0755午夜福利视频| 亚洲AV噜噜狠狠网址蜜桃动漫| 97色色网| 91日韩网站| 四虎影院成年人片| 亚洲91综合| 一区二区影院| 欧美日韩亚洲五月天婷婷| 色综合国产在线观看| 男人的天堂2018东京热啪啪啪| 97操B| 日本色色网| 我要色综合网站| 久久久久免费少妇| 国产精品久久久亚洲第一牛牛_在线观看| 黄页视频网站野外| 粉嫩久久久极品| 日韩av乱伦| 中文字幕三四五区| 盗摄 精品 另类 一区| 色香欲影| 性性欧美| 国产免费一区在线观看| 女人喷水视频在线观看| 久久香蕉国产线看观看亚洲女人 | 99爱爱| 久久人妻办公室视频| 色五天伊人| 国产97在线视频| 亚洲做性| 天美传媒av一区二区| 午夜福利久久久噜久噜久久综合 | 99国产精品久久久在线播放| 国产欧美伊人| 精品国产精品一区二区| 黄色AAAAA欧美| A级在线视频| 九九九九九九综合| 亚洲性综合| 麻豆av一区二区| 日韩超碰97| ?亚洲伊人伊成久久人综合网| 三上悠亚在线毛片91| 97伊人超碰| 久久机热| 欧美大色交| 久久久久久久久久久999| 免费看美国人人爽,人人操| 午夜丁香| 91一起操| 久热91| 怡红院一区二区熟女人妻| 黄色AAAAAAAAAAA大片| 翔田千里一区二区三区奶水| 亚洲在线网站| AVE乱伦| 欧美日韩午夜精品一区二区三区| 蜜臀99久久精品久久久懂爱| 亚州综合色| 青青草依人大香蕉| 国产麻豆一区二三区| 久草精品一区 | 激情综合网激情综合| 操逼网站网站| 影视综合无码少妇| www.大香| 大地资源在线观看中文第二页| www.av在线观看| 婷婷五月综合激情| 人妻少妇精品一区二区三区| 欧美|91色综合| 欧美亚综合色图| 伊人丝袜美腿高跟在线观看高清| 欧美 牲| 亚洲综合草草| 欧洲人妻视频| 91超碰在线| 91一区二区三区蜜桃| 日韩综合成人免费视频| 2021久久国产综合精品青草| 亚洲中文字母在线播放| 激情综合五月| 伊人大香蕉在线| 9久精品视频在线观看| 久久风骚城市| 午夜毛片亚洲精品片国产久久久| 国产精品久久久吖| A V视频日本| 久久婷婷热| 粉嫩国产精品久久久| 啊啊啊啊啊啊啊啊啊在线观看| 午夜操操操| 翔田千里AV无码秘 三区| 亚洲国产ⅴ高清在线观看| 欧美特大黄一级片片免费| 日韩精品一区二区三区四虎影视| 欧美色66| 天天综合~91| 一级乱伦网站| 国产三级日产三级韩国三级| 狂操嫩妻视频一区二区三区| 裸模AV女优| 超碰色大香蕉| 18禁在线视频| 成人在线视频网| 大香蕉中文aV在线| 欧美特黄视频网站| 边做饭边操逼逼| 中文字幕一区日韩精| 日韩欧美性爱电影在线观看| 亚洲男人的天堂V| 天天内射| 91丝袜美女视频| www.大香| 天综合中文| 欧美嗯啊……在线观看视频免费| 国产精品不卡av免费在线观看| www.99中文字幕| 国产原创自拍| jiujiujiujingpin| 女生久久网| 国产精品久久久无码AV网站| 97视频网站在线观看| 91男人天堂网| A级片日韩欧美国产欧美视频精选观看 | 久久熟女精品不卡一区| 国产精品人妻无码久久久老鸭窝| 人人干人人搞人人摸| 自拍丝袜美腿人妻| 色综合天天爱去电影网| 51一区二区三区| 在线97在线| 加勒比伊人| 五月丁香激情综合| 久久综合av| 亚洲国产成人7777| 精品夜夜澡人妻无码| 一卡二卡三卡| 亚洲人妻中文高清| 蜜臀久久在线视频| 午夜成人爽爽爽爽A片李冰冰| 丁香五月性爱| 国产91丝袜 在线播放| 美國A片| 天天天天天超碰| 久久亚州精品成人Av无| 欧美性战999| 男人天堂电影院| 亚洲色图超碰在线| 男人的天堂1024| 欧美黄色片AAAAA| 欧美日日人人天天| 成人免费福利在线观看| 超碰伊人在线| 天天操女人| 亚洲精品91| 99久久精品无码一区二区| 亚洲情色图片区| 51久久夜色精品国产麻豆| 99精品丰满人妻无| 操国产高清| 人人喜人人妻| 欧洲在线性爱视频| 国产日韩精品一区二区三区| 91w欧美| 熟女啪啪视频| 国产在线综合福利网站| 国内黄色精品| 伊人一区二区在线播放| 密臀AV在线| 乱欲一区二区| 色天使AV天堂| 狠狠爱综合网| 国产激情视频一区区三区| 欧美熟妇乱码在线一区| 亚洲精品白浆高清久久久久久| 欧美色天堂网在线视频| 国产性爱在线视频一区二区| 亚州色阁| 99操碰| 欧美激情综合| 日本超碰97日韩精品人妻| 日韩av在线免费网站| 国产精品另类一区大香蕉| 青青草中文-久久青草精品一区二区三| 后入国产| 亚洲大色堂| 在线精品福利免费播放| 四虎影视欧美| 亚洲 欧美 小说| 日韩欧美国产高清视频| 九九热re99re6在线精品| 爆乳免费黄网站| 中文字幕一区二区三区高清| 久久99干一本高清| 夜夜嗨AV蜜臀av| 操高情无码| 色臀av| 久久伦理视频久久大香蕉视频| 色色色99| 亚洲春色欧美激情自拍| 九九九九九九免费视频| 天天狠| 夜夜影视四色| 欧美一级A一级a爱片久久| 日本新免费二区三区| 五月婷婷综合激情| 操www| 久久尹人大香焦视| 久色99999| 国产精品天美传媒| 国产小u女在线观看| 日韩免费中文字幕视频| 亚洲人精品久久久| 精品乱子一区二区三区99| 91精品久久综合熟女| 欧美成熟性爱精品| 91色夜| 97精品在线| 日韩少妇丰满亚洲| 任你草| 艹比视频国产精品| A一区片| 人人妻人人澡人人爽久久av| www被窝色com| 麻豆福利视频导航| www.色婷婷| 国产精品熟女丝袜一区二区| 一区二区免费电影久久| 青草精品视频-日本久久久久网站| 国产和美国毛片| 亚洲人久久久久日| www欧美91| 国产精品丝袜久久亚洲不卡| 欧美另类色图片| 探花一区在线| 中日亚韩免费视频| 狠狠操,使劲操| juliaann丝袜| 亚洲校园激情| 人妻天天爽夜夜爽2| 亚洲精品国产av天美传媒| 夜夜操夜夜爽夜夜高潮| 男人的天堂2010| 91啪啪视频| 亚洲欧美日韩夜夜| aaaa少妇高潮大片| 18禁中文字幕| 涩涩涩综合| 9国产超碰| 岛国黄片网站| 日韩成人高清一区二区| 日韩欧美日韩| 啊啊啊想要| 丰满人妻一区二区三区色-百度| 人妻第一页| 99热一区二区三区四区| 亚洲区 欧美区| 97ai亚洲| 欧美日本不卡在线| 大鸡巴久久| 99夜夜操| 亚州综合色| 一级片视频啪啪| 无码精品久久| 欧美偷拍区| 少妇一区二区三区高速| 欧美日日操| 日韩激情中文字幕有码| 亚洲综合一区二区| 婷色五月| 天天日老熟妇| 后入人妻一区| 麻豆 亚洲 97| 伊人四虎综合| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 亚洲无码 国产无码| 一级做a爰片性色毛片久久| 国产一区二区在线播放量| 免费看黄视频亚洲网站|