日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

數(shù)據(jù)可視化建模與自動(dòng)布局:從數(shù)據(jù)結(jié)構(gòu)到可復(fù)用圖編輯器

數(shù)據(jù)可視化建模與自動(dòng)布局:從數(shù)據(jù)結(jié)構(gòu)到可復(fù)用圖編輯器 “diagram-design”這個(gè)項(xiàng)目名第一眼容易讓人覺得只是個(gè)畫圖Demo但實(shí)際上它要做的事是“把一張圖變成一套可描述、可計(jì)算、可復(fù)用的數(shù)據(jù)模型”。我在拿到這個(gè)項(xiàng)目時(shí)很快就意識(shí)到它的重點(diǎn)不是“畫得好看”而是“讓圖自己會(huì)排、會(huì)算、會(huì)適配”。簡(jiǎn)單來(lái)說(shuō)它解決的是手工拖拽畫圖效率低、后期維護(hù)成本高、圖表表達(dá)不一致這三類老問(wèn)題。無(wú)論是做架構(gòu)圖、知識(shí)圖譜、依賴關(guān)系圖還是項(xiàng)目匯報(bào)里的數(shù)據(jù)流向圖只要是需要把復(fù)雜關(guān)系可視化的場(chǎng)景這個(gè)工具鏈都值得參考。適合想自己實(shí)現(xiàn)一個(gè)可視化編輯器的前端開發(fā)、需要搭建低代碼圖表平臺(tái)的技術(shù)負(fù)責(zé)人以及準(zhǔn)備做圖形化表達(dá)但不知道如何拆解實(shí)體、關(guān)系、布局、渲染四層關(guān)系的初學(xué)者。1. 項(xiàng)目到底解決了什么問(wèn)題1.1 手工畫圖的三個(gè)老大難我在很多項(xiàng)目里看到團(tuán)隊(duì)用白板工具或者繪圖軟件畫各種圖剛開始很爽畫完發(fā)出去也很有面子。但最多兩個(gè)月問(wèn)題就集中爆發(fā)業(yè)務(wù)變了要改字段、加模塊可原圖的作者已經(jīng)不在這個(gè)組了剩下的人只能重新畫一遍又或者同一套數(shù)據(jù)在不同人手里畫出了三種風(fēng)格匯報(bào)時(shí)老板問(wèn)“到底哪個(gè)是準(zhǔn)確的”沒人敢拍板。這類問(wèn)題的本質(zhì)是“圖的語(yǔ)義沒有和數(shù)據(jù)綁定”。圖只是一張圖片而不是一組結(jié)構(gòu)化對(duì)象。diagram-design的項(xiàng)目思路不同它把圖拆成了節(jié)點(diǎn)Node、連線Edge、分組Group和標(biāo)注Annotation并把這些元素映射到一份配置文件里。這樣當(dāng)數(shù)據(jù)源變化時(shí)圖可以自動(dòng)刷新而不是讓人去手動(dòng)移動(dòng)箭頭。另外一個(gè)我特別在意的問(wèn)題是“改圖成本”。很多團(tuán)隊(duì)會(huì)把系統(tǒng)架構(gòu)圖畫進(jìn)文檔里架構(gòu)一變文檔就過(guò)期翻新文檔又沒人愿意干。如果圖本身是由代碼或配置生成的那么每次提交代碼時(shí)順帶更新配置文檔圖就永遠(yuǎn)是最新的。這是我始終認(rèn)為“配置即圖表”比“拖拽即圖表”更值得投入的原因。1.2 從“畫圖”到“描述圖”的思路轉(zhuǎn)變傳統(tǒng)繪圖工具的交互邏輯是“選中-拖拽-對(duì)齊-微調(diào)”它更偏向藝術(shù)家視角而diagram-design更傾向于程序員視角你描述圖里有哪些實(shí)體、它們之間有什么關(guān)系、方向是什么、層級(jí)怎么定義剩下的位置計(jì)算交給布局算法。我舉個(gè)最簡(jiǎn)單的例子一個(gè)依賴關(guān)系圖A依賴BB依賴CC又依賴A。如果用手工畫連線的交點(diǎn)會(huì)讓你頭大。但如果用布局算法先把三者的依賴關(guān)系抽象成一張有向圖再用拓?fù)渑判蚺袛鄬蛹?jí)然后用同層對(duì)齊算法計(jì)算每層的上下順序最后用正交連線算法把邊轉(zhuǎn)化成橫平豎直的折線那整個(gè)過(guò)程就是“數(shù)據(jù)進(jìn)圖形出”完全不需要人干預(yù)。這個(gè)思路非常核心它帶來(lái)的好處有幾點(diǎn)數(shù)據(jù)驅(qū)動(dòng)圖中的每個(gè)節(jié)點(diǎn)可以直接對(duì)應(yīng)數(shù)據(jù)庫(kù)里的一張表、接口里的一個(gè)字段、運(yùn)維平臺(tái)里的一臺(tái)機(jī)器。確定性強(qiáng)同一份配置永遠(yuǎn)生成同一張圖不會(huì)因?yàn)楫媹D的人不同而風(fēng)格迥異??蓴U(kuò)展要加新的節(jié)點(diǎn)類型、連線樣式、布局策略都只是增加一個(gè)類或一段配置的問(wèn)題。1.3 項(xiàng)目邊界與適用場(chǎng)景認(rèn)清邊界比急著寫代碼更重要。diagram-design不適合做成Photoshop那種自由畫布工具它更適合做“半結(jié)構(gòu)化”的可視化場(chǎng)景。什么意思就是用戶能調(diào)整節(jié)點(diǎn)位置和分組區(qū)域但圖的總體結(jié)構(gòu)仍然由數(shù)據(jù)模型和布局算法決定。判斷一個(gè)場(chǎng)景適不適合這類項(xiàng)目我一般看三個(gè)條件數(shù)據(jù)是否有明確的實(shí)體關(guān)系圖是否需要頻繁更新多人協(xié)作時(shí)是否需要保證表達(dá)一致性。如果三個(gè)條件至少滿足兩個(gè)那diagram-design這類方案就比通用繪圖軟件合適。典型場(chǎng)景包括業(yè)務(wù)流程圖、系統(tǒng)架構(gòu)圖、微服務(wù)調(diào)用圖、組織架構(gòu)圖、知識(shí)圖譜預(yù)覽以及數(shù)據(jù)血緣分析面板這類需要嵌入到后臺(tái)產(chǎn)品里的局部功能。2. 核心模塊拆解與方案選型2.1 數(shù)據(jù)模型圖的抽象層級(jí)diagram-design的底層不是面、線、顏色這些視覺概念而是數(shù)據(jù)模型。我設(shè)計(jì)這個(gè)項(xiàng)目時(shí)把模型分成四層第一層是Graph它是最頂層容器保存全局屬性比如畫布尺寸、縮放比例、布局類型。第二層是Node節(jié)點(diǎn)必須包含id、type、position、size、data五類信息其中data是業(yè)務(wù)數(shù)據(jù)體和圖形展示解耦。第三層是Edge保存source、target、direction、points它描述兩節(jié)點(diǎn)之間的關(guān)系但不關(guān)心箭頭長(zhǎng)什么樣。第四層是ViewState記錄用戶縮放水平、已展開的分支、被選中的節(jié)點(diǎn)等交互狀態(tài)。這個(gè)分層最大的好處是“數(shù)據(jù)層和渲染層可以獨(dú)立測(cè)試”。我經(jīng)常先只寫一堆JSON跑一遍布局算法確認(rèn)坐標(biāo)都正確了再去做視覺美化。如果一上來(lái)就綁定了DOM操作調(diào)試會(huì)痛苦得多。實(shí)際建模時(shí)我建議Node的data字段不要直接塞對(duì)象而是存一個(gè)引用或者key通過(guò)store取出。這樣當(dāng)幾百個(gè)節(jié)點(diǎn)需要序列化保存時(shí)圖描述文件不會(huì)無(wú)限膨脹而且還方便做增量更新。2.2 布局引擎為什么算法是靈魂布局是diagram-design里最容易被低估的部分同時(shí)也是我認(rèn)為最值得細(xì)細(xì)打磨的部分。如果節(jié)點(diǎn)位置全靠用戶手動(dòng)拖那再好的圖形引擎也只是一塊大白板。而要自動(dòng)布局就需要一套可插拔的布局策略。我初期實(shí)現(xiàn)時(shí)只做了三種足夠覆蓋80%的業(yè)務(wù)場(chǎng)景層級(jí)布局適合依賴關(guān)系圖、流程圖核心是用最長(zhǎng)路徑分層再按層內(nèi)規(guī)模做垂直對(duì)齊。力導(dǎo)向布局適合知識(shí)圖譜、社交網(wǎng)絡(luò)圖用彈簧模型讓關(guān)聯(lián)緊密的節(jié)點(diǎn)自然靠近。網(wǎng)格布局適合工單看板、卡片大盤純粹按照行列排布簡(jiǎn)單直接。布局算法必須保證“無(wú)重疊”和“連通性可見”。很多初級(jí)實(shí)現(xiàn)容易踩的坑是算完坐標(biāo)后節(jié)點(diǎn)疊成一團(tuán)連線全部穿過(guò)節(jié)點(diǎn)。這個(gè)問(wèn)題沒有銀彈只能通過(guò)兩個(gè)手段規(guī)避布局前對(duì)圖做連通分量劃分把不相關(guān)的子圖拆開單獨(dú)排列布局后對(duì)每一個(gè)節(jié)點(diǎn)做AABB碰撞檢測(cè)發(fā)現(xiàn)重疊就局部迭代外擴(kuò)。2.3 渲染方案SVG還是Canvas我在這件事上糾結(jié)過(guò)很長(zhǎng)時(shí)間最終結(jié)論是“按場(chǎng)景混用”而非二選一。diagram-design的默認(rèn)渲染層用SVG原因是節(jié)點(diǎn)數(shù)量一般不超過(guò)上千SVG的DOM語(yǔ)義讓事件綁定和樣式定制都太方便了——比如節(jié)點(diǎn)hover變色、點(diǎn)擊彈出詳情面板都是天然支持。而且SVG導(dǎo)出為矢量圖在匯報(bào)場(chǎng)景里很實(shí)用。但是當(dāng)節(jié)點(diǎn)數(shù)量上萬(wàn)時(shí)SVG的DOM節(jié)點(diǎn)壓力會(huì)非常明顯滾動(dòng)和縮放都會(huì)卡頓。所以我額外實(shí)現(xiàn)了一個(gè)Canvas渲染通道專門處理大規(guī)模只讀預(yù)覽場(chǎng)景。這個(gè)通道不處理點(diǎn)擊交互只負(fù)責(zé)把布局引擎算好的坐標(biāo)批量畫成圖像。簡(jiǎn)單說(shuō)SVG通道負(fù)責(zé)“編輯態(tài)”Canvas通道負(fù)責(zé)“展示態(tài)”。這里分享一個(gè)細(xì)節(jié)兩套渲染通道對(duì)應(yīng)同一份數(shù)據(jù)模型用戶在編輯態(tài)拖拽了節(jié)點(diǎn)位置模型里更新position展示態(tài)重新繪制時(shí)直接用新坐標(biāo)。兩個(gè)通道之間沒有任何同步問(wèn)題因?yàn)楫嫴加肋h(yuǎn)是模型的影子絕不能反過(guò)來(lái)讓DOM成為數(shù)據(jù)源。2.4 交互設(shè)計(jì)拖拽、縮放、折疊交互層容易做得很“重”很多編輯器把拖拽、縮放、框選、連線全部堆在一起。diagram-design我做得相對(duì)克制拖拽是移動(dòng)單個(gè)節(jié)點(diǎn)縮放是按住畫布平移和滾輪縮放分組折疊則通過(guò)點(diǎn)擊分組標(biāo)題欄切換。這三個(gè)交互覆蓋了大多數(shù)查看和微調(diào)需求。值得強(qiáng)調(diào)的是“拖拽過(guò)程中要實(shí)時(shí)觸發(fā)布局重算嗎”這個(gè)問(wèn)題的選擇。我的經(jīng)驗(yàn)是不重算拖拽只是改變VieweState里的覆蓋坐標(biāo)全部拖完點(diǎn)擊“自動(dòng)整理”按鈕才回到布局算法重新排列。這么做有幾個(gè)好處操作響應(yīng)不卡用戶手動(dòng)調(diào)整的結(jié)果不會(huì)被算法搶走真正需要重排時(shí)用戶有明確預(yù)期。另外交互層的所有操作都要進(jìn)入操作歷史棧也就是支持撤銷重做。這看起來(lái)是編輯器標(biāo)配但實(shí)現(xiàn)起來(lái)涉及節(jié)點(diǎn)增刪、位置更新、分組變更等多類操作的類型判定如果不提前抽象成一個(gè)command模式后期填坑會(huì)非常痛苦。3. 實(shí)操過(guò)程從零搭起一個(gè)可用版本3.1 定義數(shù)據(jù)模型的JSON Schema一個(gè)新項(xiàng)目最容易犯的錯(cuò)誤是一上來(lái)就畫界面。我現(xiàn)在習(xí)慣從一開始就用一份JSON Schema把數(shù)據(jù)結(jié)構(gòu)釘死界面寫得再快也不如數(shù)據(jù)模型穩(wěn)定帶來(lái)的節(jié)省多。下面是我在diagram-design里用的一份示例配置為了演示做了精簡(jiǎn)但字段結(jié)構(gòu)和高保真版本一致。{ graph: { type: hierarchy, width: 1400, height: 900, nodeDefaultWidth: 160, nodeDefaultHeight: 60 }, nodes: [ { id: svc-payment, type: box, data: { title: 支付服務(wù), status: ready, version: v2.3.0 } }, { id: svc-order, type: box, data: { title: 訂單服務(wù), status: warning, version: v1.9.0 } }, { id: svcpool-mysql, type: cylinder, data: { title: 核心庫(kù)主實(shí)例, role: primary } } ], edges: [ { id: e1, source: svc-order, target: svc-payment, kind: sync-call }, { id: e2, source: svc-payment, target: svcpool-mysql, kind: read-write } ], groups: [ { id: grp-order-line, title: 訂單域, nodeIds: [svc-order, svc-payment] } ], viewState: { zoom: 1, unfoldGroups: [grp-order-line], selectedIds: [] } }這份Schema雖然簡(jiǎn)單但骨架已經(jīng)很完整。注意我在Node里沒有直接存坐標(biāo)而是交給布局引擎去計(jì)算這樣可以避免手工寫布局造成的牽一發(fā)動(dòng)全身。真正的坐標(biāo)會(huì)保存在運(yùn)行時(shí)的一個(gè)Map里序列化時(shí)也不會(huì)寫進(jìn)配置除非用戶主動(dòng)拖拽形成了覆蓋坐標(biāo)。3.2 編寫一個(gè)輕量的層級(jí)布局算法以依賴關(guān)系圖為例我實(shí)現(xiàn)過(guò)一個(gè)經(jīng)典的分層布局算法核心邏輯分三步拓?fù)浞謱?、層?nèi)排序、坐標(biāo)換算。拓?fù)浞謱拥拇a邏輯如下def assign_layers(graph): indegree {n: 0 for n in graph.nodes} out_edges {n: [] for n in graph.nodes} for edge in graph.edges: out_edges[edge.source].append(edge.target) indegree[edge.target] 1 queue [n for n in graph.nodes if indegree[n] 0] layer {} depth 0 while queue: for n in queue: layer[n] depth next_queue [] for n in queue: for t in out_edges[n]: indegree[t] - 1 if indegree[t] 0: next_queue.append(t) queue next_queue depth 1 # 簡(jiǎn)單處理環(huán)剩余未分層節(jié)點(diǎn)放到最后一層 return layer層內(nèi)排序我通常用的是“減少交叉邊”的啟發(fā)式算法也就是同層節(jié)點(diǎn)按與其前驅(qū)節(jié)點(diǎn)連接數(shù)量的加權(quán)和排序這樣可以大幅降低連線交叉。坐標(biāo)換算則更簡(jiǎn)單同一層節(jié)點(diǎn)按順序放到一條水平線上層與層之間用固定間距縱向排開。這個(gè)算法的輸出是一份坐標(biāo)映射表nodeId - (x, y)。整個(gè)過(guò)程不依賴任何渲染代碼所以我可以用單測(cè)驗(yàn)證任意復(fù)雜的依賴圖是否會(huì)出現(xiàn)重疊。這是整個(gè)項(xiàng)目里收益最高的測(cè)試強(qiáng)烈建議把這個(gè)單測(cè)寫起來(lái)。3.3 渲染與樣式系統(tǒng)實(shí)現(xiàn)渲染層我做了一套比較靈活的模板方案每種節(jié)點(diǎn)類型對(duì)應(yīng)一個(gè)渲染函數(shù)傳入數(shù)據(jù)模型返回帶樣式的SVG節(jié)點(diǎn)組件。比如普通服務(wù)節(jié)點(diǎn)渲染為圓角矩形內(nèi)部有標(biāo)題和狀態(tài)圓點(diǎn)數(shù)據(jù)庫(kù)節(jié)點(diǎn)渲染為圓柱形干系人節(jié)點(diǎn)渲染為圓形頭像。這樣后續(xù)增加新節(jié)點(diǎn)類型時(shí)不用改動(dòng)主流程只要新增一個(gè)渲染函數(shù)并注冊(cè)進(jìn)去。樣式系統(tǒng)要與主題分離。我定義了三層主題基礎(chǔ)主題負(fù)責(zé)字體、畫布底色、網(wǎng)格線節(jié)點(diǎn)主題負(fù)責(zé)節(jié)點(diǎn)顏色、描邊、陰影連線主題負(fù)責(zé)直線還是折線、顏色和粗細(xì)。切換深色模式時(shí)只替換主題配置不需要重繪模型。寫渲染代碼時(shí)我踩過(guò)一個(gè)坑SVG的auto換行支持很差text標(biāo)簽不會(huì)自動(dòng)換行。我的解決辦法是在渲染前用Canvas的measureText估算文本寬度如果超出節(jié)點(diǎn)寬度就提前拆行再逐行渲染。以下是一段核心的換行邏輯function splitText(text, maxWidth, fontSize) { const ctx measureContext; // 預(yù)先創(chuàng)建的離屏canvas上下文 const chars Array.from(text); const lines []; let current ; for (const ch of chars) { const testLine current ch; if (ctx.measureText(testLine).width maxWidth current) { lines.push(current); current ch; } else { current testLine; } } if (current) lines.push(current); return lines; }這段代碼看起來(lái)普通但它在實(shí)際項(xiàng)目中價(jià)值巨大。因?yàn)樽詣?dòng)布局算出來(lái)的節(jié)點(diǎn)寬度都是統(tǒng)一的如果標(biāo)題超長(zhǎng)不換行要么溢出到節(jié)點(diǎn)外面要么被裁剪掉兩種情況都會(huì)讓使用者覺得這個(gè)工具“不太聰明”。做了拆行之后節(jié)點(diǎn)高度會(huì)自適應(yīng)觀感會(huì)提升一個(gè)檔次。3.4 規(guī)?;秩九c性能優(yōu)化當(dāng)圖里節(jié)點(diǎn)數(shù)超過(guò)兩千時(shí)優(yōu)化點(diǎn)的順序就變得很重要。我的實(shí)測(cè)結(jié)論是最先優(yōu)化的不是算法而是渲染調(diào)度和事件委托。先說(shuō)渲染調(diào)度。SVG的appendChild操作過(guò)多會(huì)阻塞主線程所以我把初始化渲染改成了分幀渲染每幀只處理200個(gè)節(jié)點(diǎn)加上requestIdleCallback的權(quán)重區(qū)分高優(yōu)先級(jí)節(jié)點(diǎn)先渲染低優(yōu)先級(jí)區(qū)域后補(bǔ)。這樣即使整圖有五千節(jié)點(diǎn)首屏也不會(huì)白屏。再說(shuō)事件委托。拖拽、點(diǎn)擊這類交互如果給每個(gè)節(jié)點(diǎn)都綁定監(jiān)聽器內(nèi)存壓力大且不好清理。我用了事件委托在SVG根元素上監(jiān)聽pointermove、pointerup等事件再用data-node-id屬性反查目標(biāo)節(jié)點(diǎn)。這個(gè)方案不僅性能好還能自然支持新增節(jié)點(diǎn)無(wú)需重新綁定事件。第三個(gè)優(yōu)化是視口裁剪。我計(jì)算當(dāng)前視口在模型坐標(biāo)系里的可見范圍只渲染落在范圍內(nèi)的節(jié)點(diǎn)和邊其余節(jié)點(diǎn)全部跳過(guò)。等于說(shuō)無(wú)論數(shù)據(jù)量多大單幀渲染量維持在千級(jí)以內(nèi)滾動(dòng)切換視口時(shí)才增量渲染。三檔優(yōu)化下來(lái)一萬(wàn)節(jié)點(diǎn)在普通辦公電腦上也能流暢平移和縮放這就夠用了。4. 常見問(wèn)題與排查實(shí)錄4.1 文本溢出與節(jié)點(diǎn)尺寸失配癥狀節(jié)點(diǎn)標(biāo)題長(zhǎng)一點(diǎn)就頂出圓角矩形邊界或者兩個(gè)節(jié)點(diǎn)之間重疊。排查思路先看字體度量。SVG里同一字號(hào)在不同操作系統(tǒng)下的實(shí)際渲染寬度不同直接按CSS像素字體估算容易不準(zhǔn)。最佳方案是用離屏Canvas的measureText獲取真實(shí)像素寬度再乘以1.2的系數(shù)做安全余量。另一個(gè)隱蔽因素是邊距。節(jié)點(diǎn)文本的padding如果沒納入尺寸計(jì)算布局引擎按160寬度排布文本卻需要180那必然溢出。所以我建議預(yù)留8~12像素的padding并且layout引擎計(jì)算碰撞時(shí)要用完整的外部包圍盒也就是sizepadding而不是只用內(nèi)層文本區(qū)域。4.2 連線交叉嚴(yán)重癥狀自動(dòng)布局后一半以上的連線交叉圖根本沒法看。這是布局算法的問(wèn)題不是渲染bug。交叉的根源往往是層內(nèi)節(jié)點(diǎn)順序不匹配比如source層的A、B對(duì)應(yīng)target層的X、Y如果target層順序是Y、X兩條線必然交叉。我的改進(jìn)方案是給層內(nèi)排序增加“祖先節(jié)點(diǎn)加權(quán)”先統(tǒng)計(jì)每個(gè)節(jié)點(diǎn)到上一層所有連接目標(biāo)的節(jié)點(diǎn)索引計(jì)算中位索引再按中位索引排序。這個(gè)思路能立刻減少大部分交叉。再配合“分段線性插值”折線連接方式讓邊在預(yù)測(cè)空間內(nèi)走正交路徑視覺上比直線連貫穿插干凈很多。4.3 拖拽后坐標(biāo)漂移癥狀鼠標(biāo)按住節(jié)點(diǎn)拖拽節(jié)點(diǎn)比鼠標(biāo)慢半拍或停手后節(jié)點(diǎn)自動(dòng)跳回原位。多半是坐標(biāo)空間不一致。鼠標(biāo)事件的clientX和clientY是屏幕坐標(biāo)而節(jié)點(diǎn)position是模型坐標(biāo)兩者中間隔著畫布縮放比例和畫布平移偏移量。正確的換算公式是const rect svgRoot.getBoundingClientRect(); const modelX (event.clientX - rect.left - viewState.panX) / viewState.zoom; const modelY (event.clientY - rect.top - viewState.panY) / viewState.zoom;我遇到這個(gè)問(wèn)題的次數(shù)比預(yù)想多而且每次都是在小功能改動(dòng)后復(fù)發(fā)。所以現(xiàn)在會(huì)把這一小段坐標(biāo)換算封裝成一個(gè)函數(shù)并在拖拽啟動(dòng)時(shí)強(qiáng)制讀取一次畫布當(dāng)前的pan和zoom值不依賴內(nèi)存里可能存在延遲的舊狀態(tài)。4.4 導(dǎo)出圖片時(shí)背景和透明問(wèn)題很多編輯器都提供“導(dǎo)出PNG”功能diagram-design也不能少。但默認(rèn)導(dǎo)出經(jīng)常遇到兩個(gè)坑導(dǎo)出背景是黑色導(dǎo)出內(nèi)容只有當(dāng)前視口不是全圖。黑色背景通常是因?yàn)镾VG沒有顯式聲明fill導(dǎo)出時(shí)被默認(rèn)值覆蓋。解決方案是在導(dǎo)出前給根節(jié)點(diǎn)加一個(gè)白底的rect。全圖導(dǎo)出則需要先讀取模型里所有節(jié)點(diǎn)的包圍盒計(jì)算畫布尺寸然后臨時(shí)把viewBox改為全圖范圍等導(dǎo)出完成后再恢復(fù)原來(lái)的縮放狀態(tài)。這樣導(dǎo)出的圖片在任何平臺(tái)上看都是完整且干凈的。4.5 分組折疊后連線懸空折疊分組本身只是隱藏子節(jié)點(diǎn)但子節(jié)點(diǎn)與其他組的連線如果不處理就會(huì)出現(xiàn)“線從空地牽出來(lái)”的懸空效果。我給分組模型增加了一個(gè)entry節(jié)點(diǎn)和exit節(jié)點(diǎn)分組折疊時(shí)所有進(jìn)出邊先匯聚到分組邊界的錨點(diǎn)再由錨點(diǎn)連接到外部其他分組或其他孤立節(jié)點(diǎn)。本質(zhì)上是在抽象層面做了一次“邊的重連”視覺層面則靠給折線加垂直邊角來(lái)呈現(xiàn)。這個(gè)細(xì)節(jié)雖然復(fù)雜但做好之后分組折疊功能才能真正可用而不是單純隱藏圖層。5. 關(guān)于這個(gè)項(xiàng)目我最后還想說(shuō)的幾件事diagram-design做到后面我發(fā)現(xiàn)難點(diǎn)已經(jīng)不在視覺表現(xiàn)而在“如何讓數(shù)據(jù)與結(jié)構(gòu)保持同步”。一份配置對(duì)應(yīng)一張圖這句話說(shuō)起來(lái)輕松但真正常態(tài)化運(yùn)行需要把數(shù)據(jù)校驗(yàn)、布局算法、渲染調(diào)度、交互狀態(tài)管理全部打通。很多人在第一步就被困住了因?yàn)樗麄兛傁胫劝旬嫴甲銎猎倩靥顢?shù)據(jù)結(jié)果每一步都在補(bǔ)洞。根據(jù)我的經(jīng)驗(yàn)最值得提前花時(shí)間的部分是JSON Schema設(shè)計(jì)和布局引擎的單測(cè)這兩塊做好之后后面的渲染和交互都會(huì)順理成章。最后再分享一個(gè)實(shí)用習(xí)慣項(xiàng)目中所有坐標(biāo)輸出都加一份“圖形預(yù)覽調(diào)試面板”每一步布局后能直觀看到坐標(biāo)分布而不是靠console.log猜測(cè)問(wèn)題在哪。這個(gè)面板在后期的性能優(yōu)化和維護(hù)中會(huì)幫你省下大量時(shí)間。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超碰成人人人爽人人爽| 91逼逼女人91| 男人在线天堂| 蜜桃午夜视频一区二区| 不卡在线一区,精品一区二区三区中| 久久伊人最新网址视频| 婷婷探花久久精品一区| 中文字幕艹艹| 午夜福利激情在线视频| 超碰色老头| 中文字幕免费观看| 六月丁丁香| 亚洲 小说 欧美 激情 另类| 天天热精品| 亚洲色图91欧美日韩| 91第一页| 手机av天堂久久久久| 日韩欧美aⅴ综合网站发布| 久久午夜神马| 亚欧操逼片在线观看| 亚洲图片在线| 精品一区二区三区四区女| 色综合一区二区三区| www被窝色com| 欧美熟妇操操视频| 嗯啊不要在线观看嗯啊| 99精品免费| 蜜乳AV一区二区三区四| 亚欧无码在线| 久久久久久电影| 激情五月天校园春色网| 操美女人妻| 97久精品| 久久婷婷色综合一区二区三区| 2019天天干天天操| 色色色日本| 91久久| 中文字幕欧美日本乱码一线二线| 超碰天天操| 日本综合色图| 伊人97超碰| 超碰人人在线| www.av在线观看| 伊人一区二区在线播放| 国产精品亚洲一级av第二区| 9 1果冻精品视频| 亚洲第一男人天堂| 99re99在线视频| 欧美性天天影院| 啊啊啊不要啊啊受不了了视频在线| 免费精品人妻一区二区三| 亚洲人久久久久日| 国产精品 视频| 97在线免费看视频| 亚洲国产精品成人久久蜜臀| 少妇久久久久| 午夜国产成人精品视频| 国产在线综合网| 亚洲色图欧美一区二区不卡| 97干在线| 国产中文字幕曰本毛片| 91大学精品激情戏| 蜜桃成人1区2区3区| 久久久夜夜嗨免费视频| 超碰成人免费| 亚洲春色激情小说| 天天日日日射| 加勒比av网| 久操视频在线| 久热一区二区| 无码逼| 啪啪视频亚洲第一| 激情五月婷婷综合| 丰满人妻一区二区三区在线| 婷婷另类小说| 国产又长又大又粗的视频| 91国产丝袜白虎| 亚洲欧美骚| 欧美综合自拍| 青草av在线| 性色avv| 久久老子无码午夜伦不卡| 九九热视频在线观看| 韩国久久97| 97色色色综合网站| 久夜视频| 亚洲精品aa久久伊人| 农村妇女一级二级三级视频| 69丨亚洲丨精品丨入口免费播放| 中文字幕二区| 国产精品人妻无码久久久老鸭窝 | 97亚洲性爱| 亚洲欧美综合色| 亚洲AV在线资源| 日韩欧无码一区二区三区免费不卡| 日韩黄片视频试看| 美女露胸露尿口| 人人噜夜夜操| 国内偷拍精品一区二区| 精品少妇一区二区三区在线视频| 国产尤物在线三区| 一级片视频啪啪| 精品高清一区二区三区三州| 99国产人成精品| 91国内外在线| 在线观看亚洲成人精品| 欧美久热| 欧美一区二区三区黄色影视| 性爱综合一区二区| 久妇网| 国产怡红院| 青青草一区二区高清无码视频 | 婷婷五月激情综合| 无码男人天堂| 亚洲无无码αⅴ每日更新| 五月丁香激情综合网| 日本大香蕉| 激情一区二区| 91一区二区| 我爱操| 国产精品自拍xxxx| 91草草草| 国产精品激情久久久久久久| 国精综合一二三区影视| 97色97干| 99热这里| 日本不卡二区| 亚州乱码中文字幕综合久久久| 亚洲a色| 天天色综亚洲91污| 成人精品视频| 精品久久久久久中文| 大香蕉色网| AVE乱伦| 黄页大片在线观看| 91精品无码久久久久久久| 久久久婷婷婷| 九九精品网| 欧美99热| 久久专区| 另类综合另类| 欧美精品69性爱| 久久久精品国产亚洲伊人| 国产欧美另类久久久精品课程| 九九激情网| 欧美人妖内射| 中文字幕人妻色偷偷久久皮 | 26uuu欧美| 亚洲美女精品九九视频| 天天干天天日天天射黄色大片| 亚洲熟女综合一区二区| 天天综合有色网| 久久精品黄色| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 国产小视频91| 高清视频一区| 五月婷婷六月丁香| 欧美一区二区日韩三区| 伊人久久亚洲色欲综合网站| 99久在线精品99re8热| 九久久九九久视频| 蜜臀AV成人精品蜜臀AV久久| 人妻中文字幕精品无码 | 夜夜狼人妻| 一级片视频啪啪| 亚洲天堂另类小说男人| 欧美日韩激情无码专区| 亚洲 欧美综合| 免费看污网站| 超碰99热| 级做a爱无码性色永久免费| 午夜福利在线合集| 日韩成人免费电影| 毛片一区二区| 亚欧美综合网。| 综合熟女| 亚洲欧洲综合av在线| 一本一道久久综合久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 色老汉色| 中文字幕 码精品视频网站| 亚洲本色精品一区二区久久| 国产精品电影推荐| 小草精彩毛片| 九九99精品| 亚洲春色一区二区三区| 天天亚洲| 欧美午夜色妇色鬼| 99色综合| 中文字幕亚韩| 亚洲色图亚洲无码强奸乱伦| 五月婷亚洲精品天堂| 亚洲成人妻日韩在线| 亚洲中文字幕av| 操逼日批| 欧美的性爱网站免费| 肥佬影院91| 伊人一区二区三区| 日本一片一区| 亚洲人精| 99热97| 国产超碰| 日韩黄色一区二区三区| 性爱Av免费| 国产一区二区二区按摩精品啪视频| 欧洲亚洲天堂精品| 大香蕉一人在线| 久久一区无码| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 99日免费视频中文字幕| 成人精品视频一区二区| 午夜精品久久久久久久男人的天堂 | 亚洲精品人妻在线| 3P乱轮视频| 久久性爱视频免费看| 78精品| 久久超碰天天| 国产精品伦理| 97神马久久| 亚洲天在线| 九久久精品| 亚洲青青草| 夜夜福利| av婷婷色网| 天天肏美女| 猛交交| 久久久98网站免费视频| 超碰亚洲97| 久久婷婷一区二| 久久婷婷色综合一区二区三区| 亚洲nv男人的天堂网| 黄在线| 最新中文字幕精品在线| 欧亚性爱视频免费看| 欧美日本中字另类在线| 欧美精品自慰系列寂寞少妇| 波多野结衣一级视频| 亚洲一曲日韩精品| 在线强奷到舒服的无码视频| av凤凰久久久| 99热超碰| 亚洲在高跟鞋自慰久久在色线| 伊人久久久日韩一区| 亚州色图欧美| 久操av在线| 国产麻豆91欧美一区二区久久婷婷国产精品 | 超碰视97中文| 清纯唯美亚洲综合| 亚瑟国产精品久久无码| 夜夜影视四色| 亚洲人精品久久久喷水| 91色艳| 九九十八精品| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 中文字幕精品三级久久久| 东北女人高潮视频| 日本国产亚洲一区在线观看| 69视频入口| 国产A v无码专区| JIZZJIZZ国产精品喷水| 啊啊啊用力在线观看| 男生女生啊啊啊啊| 91 天天综合| 热99re69精品8在线播放| 人人干黄色| 精品在线观看视频在线| 丝袜制服字幕在线| 啊啊啊啊啊啊啊啊啊在线观看| 精人妻无码一区二区三区伊人直播| 91综合天天| 欧美18老人禁| 肉丝网站91| 久久久九| 免费啪啪av| 久久婷婷色| 口爆欧美91| 性生活性生大爱77AV国产| 人人搞人人插人人操| 亚州AV无码国产精品| 2025亚洲男人天堂| 欧美 亚洲精品首页| 中文精品一区二去| 殴美日韩m| 啊啊啊啊免费视频| 国产麻豆一级精品视频| 久久日本熟女精品一区| 欧美少妇色图| 亚洲天天艹| 国产深喉| 亚洲黄色a级片| 麻豆九九九| 蜜臀久久99精品久久久久久成人小说 | 最新欧洲欧美日本激情网站| 色九九久九九| 强免费黄色网址| 亚洲色图欧美另类在线| 精品国产91内射久久| 五月丁香综合网| 97热视频在线观看| 国产操操日韩三级黄| 美女高潮视频91| 亚洲色人| 日韩少妇丰满亚洲| 97超碰久久| 日本 欧美 亚中文字幕| 先锋女优在线观看视频| 日欧操屄视频| 国产9l 大屁股| 9999久久久久| 欧美第一页| 91超碰人人操| 91观看 国产白丝| 熟女探花啪啪| 免费看久久久性性| 中文字幕女同在线| 日韩一区二区高清在线观看的| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 深田咏美亚洲精品福利社| 亚洲人码13| 思思热er精品视频| 欧美韩日精品99综合| 青青草天天亲夜夜操网| 日韩性色| 欧美亚洲影视| 欧美极度丰满熟妇hd| 9久9久9久9久视频网站| 熟女激情综合网| 色爱三区| 白嫩妹子国产骚| 大香蕉人妻| 少妇综合网| 亚洲情色一区三区| 亚洲av影音先锋| 亚洲激情深爱文学小说网站| 日本有码久久| 五十路熟女人妻一区二区在线观看 | 国产AV色黄看到爽| 97超碰公开| 亚洲国产精品久久久久久久久久| 免费久久一级毛片大黄| 97国产精品久久久久| 制服乱伦| 男人的天堂1024| 欧美精品999| 免费在线看黄片av| 大香蕉92| 欧美亚洲综合色| 日韩无码三级影院| 嫩草 我啊~嗯~在线| 国产毛片精品一区二区色欲黄A片| 网友自拍第一页| 天天摸天天舔天天操| 天天弄天天操| av在线免费一区二区| 中文字幕三四五区| 国产精品久久久九九九| 久久最新免费视频23| 欧美 日韩 亚洲 春色| 久热精品在线| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 亚洲综合激情五月久久| 黑人白女精品一区| 天天肏视频| 超碰天天久久79| 久久九九综合| 干日本人少妇午夜寂寞影院| 97在线免费观看视频| 久久久一区二区| 天综合中文| 青娱乐久久艹| 性久久| 东京热一区二区中文字幕| 97精品97久久| 男人的天堂欧美| 禁片 高清 在线观看视频网站| 国产午夜激片Av毛片不卡| 绯色一区二区三区不卡少妇| 久久男人| 色哟哟AV| 色av中文字| 99精品在线| 日韩中文字幕人妻视频| 日本性爱视频一级| 国产在线综合福利网站| 色香欲影| 亚欧美综合网| 欧美人妻色| 中文字幕视频2区| 成人五月香网在线| 天综合网| 无码91| 久久东京国产精品视频| 第一高清av中文字幕| 亚洲成人精品在线一区| 亚洲欧洲日本精品中文a∨| 天天cao在线| 天天夜夜rb| 亚91网| 精品人妻丰满熟妇一区二区三| 欧美丝袜美女电影一二三四区| 97超碰逼| 亚洲色图第四色| 加勒比人妻综合| 97操综合| 欧美日韩欧美| 久久久网一区| 人妻精品一区一区三区蜜桃91| 久热大香蕉网站| AV天黑人| 伊人少妇久久久| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 人妻人妻天天碰| 亚洲伊人久久精品影院| 国产熟女自拍| 欧美啪啪色吧在线| 日本好吊色视频| 欲色综合| 日本人妻最新在线中| 亚洲无码国产精品久久| 色吧5亚洲| 在线观看免费视频国产| 超碰国产精品久| 加勒比在线视频一区二区三区| 自拍偷拍 日韩无码| 色官网在线| 激情啪啪拍91| 北条麻妃99精品青青久久| 97青娱乐超碰久久| 大白逼三四级| 日韩三级伦理中文字幕| 在线综合色| 肉嘟嘟www视频在线观看高清| 国产刺激视频| 久久亚洲婷婷| 亚洲情色在线| 亚洲色人阁| 大香蕉99999| 国产家庭乱伦表演| 国产少妇高潮| 九九无码| 色五月天AV| 91痴汉| 欧美 日韩 婷婷 五月| 一二三四区电影| 人人操人人摸人人骑| 永久免费发布性爱网| 九九热AV| 九热超碰| 成人影院永久免费观看网址| 人妻精品综合中文字幕在线| 亚洲精品国产熟女久久久| 久久亚洲中文字幕视频| www.99视频| 色婷婷丁香| 欧洲与亚洲欧美精品中文字幕| 欧美日韩系列| 国产成人无码a| 欧美日不卡| 肥臀熟女一区二区三区视频| 黄色小视频日本txt| 60秒试看最爽10分钟网站| 久久久999国产| 国产日韩区| 韩国女主播青草在线| 久草资源在线| 99精品无码| 亚洲AV不卡在线观看| 欧美色视频在线| 亚洲一二三精品久久网 | 亚洲天堂在线怕怕视频| 日韩精品三区四区| 国产一级高清免费观看| 久久久久久久九九九九九九| 97天天| 大香蕉人妻| 日本久久久久久久久久| 男男H黄动漫啪啪无遮挡网站| 日韩精品操少妇| 免费看黄片现成| 精品97精品97| 伊人网青青| 嗯嗯嗯,草死我| 欧美色综合| 亚洲,欧美,春色,另类| 国产97在线视频| 这里只有精品久久| 天天做天天爱| 人人妻人人操人人乐| 校园春色五月天| 嗯嗯嗯好爽| 九九九色| 欧美老妇女内射网址| 激情黄色片在线观看| 欧美 亚洲 综合 制服| 亚洲九九九九| 91艹| 五月丁香综合网| 十八禁啪啪视频| 人妻大相焦在线| 国产美女高潮叫床视频| 午夜精品久久久久久久99| A片大香蕉在线| 老熟妇一区二区三区啪啪| 在线观看亚洲成人精品| 国产99999久久精品| 国内毛片国产专区二| 成人日本片久久久蜜桃| 亚州色图第三区| 激情小说日韩无码| 亚州九九九精品视频| 国产精品久久久久久无码红治院| 韩日自拍| 日本天天吊| 新婚人妻扶着粗大强行坐下| 久久久久女教师免费一区| 一区中文字幕二区日韩| 唐山老熟妇露脸啪啪叫| 不卡中文字幕aⅴ在线| 亚洲欧洲无码一区夜| 日韩成人大片在线观看| av毛片aaaaa免费看| 日韩伦理视频| 无码国产精品久久久久| 秋霞Av理论一级在线| 亚洲一本色码中文字幕| 亚洲精品一二三四区| 亚欧无码在线| 国产品精品自在在线午夜免费| 免费看污网站| 囯戸精品高潮呻吟旡码| 青青五月天| 美女丝袜激情小说| 亚洲国产精品久久久久婷婷青年| 最新国产精品久久精品| 2021国产成人精品久久| 色大香蕉97N| 国产伦精品免编号公布| 亚洲制服欧美另类内射| av网站在线观看了| 老司机福利青青草| 亚洲干B| 亚洲一区二区 麻豆传媒| 婷婷中文网| 综合久久久久久久久91| 夜色综合| 欧美综合色图网| 啊啊啊好湿久久| 精品久久視頻在线| 国产无套粉嫩白浆在| 人妻 中文 日韩| 久久精品国产精品一区| 久久一二三四| 一区二区三区高清 | 欧美亚洲| 亚州男人天堂| 色九久| 色妺妺AⅤ| 蜜桃网熟妇| 欧美亚洲综合999| 久久香蕉超碰97国产精品 | 女生久久网| 丰满人妻-区二区三区免费看| 韩日精品福利视频一区不卡在线免| 日本在线不卡123| 国产日比| 亚洲精品视频在线播放| 综合欧美日韩在线观看| 偷窥自拍A片| 色色香蕉| 欧美日韩操逼嗦吊| 国产欧美日本亚洲精品| 国产无马在线| 人人操人人操人人操人人操人人操人人人11.CM | 久久性爱视频99| 五月亭亭六月丁香| 国产 日韩 欧美一区| 日本大香蕉综合网| 国产成人久久精品蜜臀| 五月天我淫我色av| 人妻一区二区三区视频 | 蜜汁欧美| 人人妻人人爽一区二区三区| 亚欧美综合| 桃色五月天| 99热日| 91色欧美| 久久riav中文精品| 乱码熟妇人妻久久久| 亚洲丝袜诱惑| 中文啪啪视频| 91熟女视频| 亚洲欧美一区二区三区在钱蜜桃| 欧美丝袜亚洲| 色噜噜狠狠色综合日日| 久久久久女教师免费一区| 色呦呦呦在线观看视频| 亚洲视频一二区| 亚洲国产ⅴ高清在线观看| 91色爽欧美| 人人艹亚洲| 亚洲国产中文字幕| 收看日本人日bb| 色偷综合| 绑缚麻绳人妻寝取完整版| 操逼日韩无码 | 99超碰网| 综合熟妇一区二区三区| 日韩免费在线视频观看| 成人av在线播放| aV中文麻| 久久噜噜噜精品国产亚洲综合| 91粉嫩萝控精品福利网站_精品影音先锋国 | 亚洲精品99999| 亚洲综合性网址| 久久日韩精品一区二区| 99精品人人爽| 91精片| 午夜美女诱惑电源网| 丰满人妻一区二区中文| 在线视频免费播放一区| 91爱啪| 久久久久成人蜜桃精品| 曰本精品久久久| 91粉嫩萝控精品福利网站_精品影音先锋国 | 日本人妻A片成人免费看片| 国产成人亚洲精品无码最新在线| 香蕉免费一区二区三区不读| 国产精品久久久亚洲一区| 东京热一区二区中文字幕| 黄日韩| 麻豆人妻少妇在线免费观看| 欧美拳交在线播放| 亚洲色图欧美视频| 亚洲啪啪视频一区二区| 久久精品 六十路 熟女 欧美| 欧美,日韩综合久久| 天天综合网~91综合网| 97中文字幕色| 色播五月丁香| 啪啪啪大香蕉| 99色在线| 少妇 综合| 天堂九九九九九九九九九| 亚洲色图日韩精品| 婷婷激情五月天小说网| 51一区二区三区| 风流老熟女一区二区三区l| 激情无码日韩| av在线一区二区三区| 中文字幕丝袜国产第一页不卡| 26uuu性| 国产精品视频麻豆入口| 久久东京伊人一本到鬼色| 日韩无码黄色片| 久久精品国产72国产精品福利| 大香蕉www.超碰| 日韩一性一交一A片俄罗斯| 91社区拍啪人妻| 日日夜夜干| 中文字幕精品一区二区精品| 国产精品久久久久中文字幕| 色9999日韩国产| 床上啊啊啊一区二区三区| 2025亚洲男人天堂| 综合网亚洲1| 97aiaiai| 色情五月婷婷| 日韩啪啪啪视频| 影音先锋新男人| 狠狠色综合网| 蜜乳性色无码专日粉嫩骚逼AV| 97久久国产亚洲精品超碰热| 五月天偷拍| 久久免费少妇| 人人爽夜夜玩视频| 欧亚免费视频| 伦在线97| 欧美爱三级日韩久久| 久久久久久久久久8888| 大香蕉伊人网WWWn0n| 日本免费二区三区| 欧美系列在线一区二区| 国产性刺激| 乱伦色图网址是多少| 色综合av男人天堂| 精品一二三区久久AAA片| 99精品在线观看| 性色aV一区二区三区噜噜| 大香蕉97久久| 亚洲精品国产熟女久久久| 精品人人插人人操| 婷婷天堂站| 亚洲中文一区二区三区| 福利在线黄片| ji熟女.com| 日本人体九九九九九九| 久久久艹艹艹| 中亚精品极乱| 玖玖爱在线视频免费观看| 夜色AV无码手机在线影院| 国产免a费看黄片在线| 国产黄色av大片网站| 国模精品一区二区三区苹果色戒| 狠狠色丁香| 97人人操人人摸| 亚洲色图欧美视频| 一区二区三区黄色片a| 91骚熟女| 欧美 亚洲 制服 精品| 四虎精品永久在线播放| 啊啊啊 在线观看| 国产a片操逼| 超碰社区97| 91精品国产麻豆国产自产在| 日韩欧美麻豆 | 五月天精品| 丁香五月综合| 曰韩人妻中文字幕在线| 黄色不卡视频| 欧美日韩在线国产在线| 欧美性夜| 蜜臀亚洲综合一二三四区| 久久女婷| 狠狠操夜夜| 超碰97中文| 狠狠操狠狠燥| 欧亚洲精品有视频| 日本五十路熟女一区二区| 60秒不遮不挡| 欧美最婬乱婬爆婬牲视频| 江都AV在线| 日本99久久| 亚洲九月丁香| 伊人丁香五月婷婷| 色妺妺AⅤ| 色综合99999| 日韩在线人妻网站| 日韩精品.久久精品.AV女优.天美传媒| 岛国激情视频在线观看| 草B在线| 污污污8888| 精品国产99| 日韩美女久久一区二区三区| 精品人人插人人操| 囯产操逼片| 黄色免费一级在线毛片| 综合夜夜| 91精品91久久久久77777俄罗斯老妇姓x| 国产有码一区| av在线人气| 妇女视频网站| 久久只有精品一区二区三区| 4141514逼喷水三级片| 久久精品欧美一区蜜桃| 欧美 亚洲 制服 精品| 久热免费视频| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 日韩免费a级毛片无码a∨| 欧美激情专区| 99亚洲精品| 久久久久久久久久久久97| 熟女五十路一区二区三| 涩亚洲欧洲| 日本熟妇一区二区三区| 日韩欧美性爱电影在线观看| 国产一线二线三线av| 手机看片1024你懂的国产| 精品久久久久,69国产成人精| 77国产精品| 人人操,人人液| 99操99| A一级色女| 色五月AV| 婷婷操逼| 97Ai亚洲| 人妻少妇av在线观看| 日本精品第一视频在'| 一区二区三区 日韩欧美| 十八禁成人网站在线观看| 91国产精品熟女| 熟女突然公开看18禁影片| 国产精品麻豆免费视频| 日韩BBN| 国产传媒1234区| 麻豆这里只有精品| 日本精品一区二区三区四区的功能| 亚洲图片小说欧洲| 大香蕉日韩欧美| 在线观看免费视频国产| 免费夜夜爱黄色视频毛片| 日韩精品一区,二区 九九...老司机| 久久久人妻| 国产精品一区二区黄片| 歐美性天天| 一区操逼| 亚洲免费精品一区| 97欧美精品| 五月丁香久久| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 奇米四色网| 99re在线观看| 91劲爆| 久久成人午夜精品影院| 国产九月婷婷| 日日躁夜夜躁狠狠躁超爽| 激情五月综合| 久久久久久久久久久久色网| 91超级碰碰碰| 本道综合精品| 97青青操视频| 日韩一级二级三级在线不卡观看完整| 伊人AAA| 亚洲97网站| 99视频只有精品| 操东北女人| 天天综合网入口~91| 人人操人人摸人人看人人干| 成人A片男人的天堂| 一区二区三区黄色片a| 大香蕉2017| 插入综合网| 26uuu国产日韩综合在线观看| 欧美在线视频观看一二三四区高清 | 国产成年女黄特黄| 日本东京热大香蕉a片| 台湾一区国产高清在线| 日韩淫色网| 大香蕉碰碰| 亚洲欧美综合区自拍另类| 蜜汁欧美| 91nbbbbbb| 久久综合99| 午夜AV人气不卡| 久久久久熟女| 91网站18在线| 99热免费| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 少妇一级婬片免费放一级a性色.| 日本孕妇一区二区视频操逼免费看 | 国偷自 一区| 日韩97视频!在线| 久久一二三四不卡| 亚洲诱惑天堂 | 97香蕉人人乳| 九九夜精品九九在线| 欧美一区二区情色| 九九热免费国产视频婷婷伊人| 中文字幕在线观| 日韩电影天堂视频一区二区| 熟妇一区,二区,三区。| 高潮毛片无遮挡高清免费| 少妇天堂| 青青草黑寡妇男人天堂| 亚洲免费成人在线高清无码视频| 夜夜国自区| 黄片免费久久久久久久| 大香蕉 222| 亚洲精美粉嫩嫩泬在线观看| 亚洲欧美日韩制服另类| 快播电影网日韩新片| 殴美日韩m| 翔田千里一区二区三区奶水| AAAA欧美日韩| 日韩欧美午夜一区二区| 亚洲国产欧美一区二区潘金莲| 破处bbq| 麻豆天美在线| 全国男人天堂网| av天堂电影网| 国产极品馒头逼| 99久久精品无码一区二区毛片免费| 99久久精品无码一区二区毛片免费 | 人妻精品视频一区二区三区| 国产中文字幕在线| 日韩91网站| 亚洲熟女av中文字幕| 日韩二区三四区五区六区在线看| 超碰综合色| 99re视频在线播放青草| 国产精品爆乳懂色蜜乳| 亚洲精品天堂久久A∨51成人漫| 多乙久久久久久| 97超碰69| 婷婷久草| 日韩免费福利在线观看| 国产精品青草综合久久| 精品国产网站| 超碰人妻久久| 一区二区三区免费岛国片| 91n美女视频| 嗯嗯嗯啊啊在线观看| 天天干人人干天天日97| 激情五月天丁香| 91 国产丝袜在线播放-百度| 成 人 A V免费视频在线观看| 天堂种子在线www网资源| 屌妞视频久久久久久久| av网站免费看| 另类图片五月| 国产精品伦理| 夜夜爽爽爽| 偷拍亚洲| 综合色图,成人综合网| 東南亚性呦成人伦理资源在线视频| 午夜福利在线合集| 久久亚码| www.色操逼| 久久超碰天天| 另类专区在线观看| 夜夜夜夜久久久久| 五月婷婷综合激情| 欧美少妇色图| 黄色乱论网站| 日本性交操一区二区不卡系列| a人欧美综合天堂麻豆| 日婷婷| 热热色色综合| 婷婷五月综合在线| 天天综合~91| 麻豆 亚洲 97| 国产精品秘 福利姬在线观看| 2020天天色综合| 性色一线| 日韩av无码网站| 偷拍综合亚洲| 99re3这里只有精品| 国产成人无码高清| 免费av大片| 欧美v亚洲v日韩v最新在线二区 | 边做饭边操逼逼| 久久精品高清无码一区| 国产吹潮女在线观看| 黄网站黄视频网站进入口 | 安微少妇操BBB| 久操视频在线观看| 超碰免费人妻在线| 亚欧成人一级片在线播放| 天天综合网在线| 青青国产精品在线| 免费一级毛片在线视频观看| 日韩中文字幕精品一区在线| 肏逼视频日本| 久久丝袜| 精品熟妇视频一区二区| 精品人妻一二三四区视频| 久久国色天香香蕉| 99这里有精品视频| 精品性爱一区二区| 超碰在线91| 色阁阁AV综合网| 男人的天堂不卡一区二区| 免费一级精品啪啪视频| 丝袜AV一区二区三区| 91爱网| 爱av免费| 色欲Av人妻精品一区二| 久久久女人| 免费一级视频特黄色大片| 欧美欧美啪啪视频| 亚洲91网。| 九九热视频在线观看| 国产亚洲精品农村妇女| 日韩成人在线性爱视频| 中文字幕青青草| 99热日| 锕锕好爽 死我在线观看| 欧美激情一区二区| 欧美色997| 三级片大波波| 日本不卡高清免v欧美日韩在线观看| 人人透人人操| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 9超碰免费| 人妻日日夜夜精品| 操人妻丝袜高跟| 97精品国产97久久久| 国产原创自拍| 久久久久日本视| 久久一二区四| 成人综合视频久久| 青青青青草av在线观看| 你草精品在线视频| 另类av天堂| 精久久久| 欧美人妖内射| 午夜男女爽爽大片免费观看| 3PAV乱伦视频| 人妻铁牛TV| 久久久蜜桃臀无码视频| 中文字幕乱码在线| 亚洲图片激情综合另类| 啪啪资源网| 五月丁香久久| 四季AV综合网址| 美女骚尻视频| 欧美激情专区| 99热99在线播放激情| av片在线观看免费播放| 青青草视频这里只有精品| 91亚洲欧美色图| 欧美啪啪天堂| 国产在线观看91精品一区| 国产精品久久久 | 中文字幕91页| 欧美久热| 夜夜骑天天燥| 亚洲资源一区| 精品亚洲国产成人精品| 日韩国语字幕| 国产精品久久久午夜夜伦鲁鲁| 欧美亚洲综合高清在线| 99久久精品国产高潮| 333kkkk·亚洲com久久| 91精品人妻电影| 999在线电影香蕉| 欧美图片色五月天| 手机在线视频国内精品| 国产蜜臀精品一区免费尤物| 9久9久9久9久视频网站| 国产强奸超碰AV| 台湾佬中文娱乐网久久久久久久久久com | 国内偷自视频区视频综合 | 麻豆亚洲AV成人无码久久精品| 成年人一级黄色毛片大全在线观看| 日本熟妇人妻中出视频| 久操网在线| 国产精品一二三在线看| 99re在线精品78| AA特级绝黄| 加勒比五月天| 黄色免费网页无码| 超碰到97情色| 中日韩欧美精品无码AⅤ一区二区| 情侣操 逼视频99| 26uuu性| 看黑丝美女操逼青青网站| 一本大道不卡一二三区| 色悠久久久av| www色色com| 啊啊啊啊网站| 无码视频一区二区| 亚洲天堂人妻熟妇视频| 亚洲色天堂九9| 丁香五月成人| 国产超碰AV在线精品| 天天影视射综合网| 亚洲色综合| 久操精品| 97伦乱| 久久麻豆一区二区| 亚洲熟女精品| 亚洲视频精选| 九九九久久久久| 天堂精品在线| 丰满人妻一区二区三区四区| 亚洲在线欧美| 校园春色欧美| 九九拍拍精品视频在线播放| 人妻一区视频| 在线毛片片免费观看| 91视频女生| 午夜福利区| 亚洲av夫妻操穴网| 国产 丝袜 欧美中文 另类| 亚洲国产精品V?在线播放| 亚洲性高潮| 天天射夜夜| 双插在线| 久草精品国产蜜臀 | 亚洲自拍偷拍视频在线| 91真人天天在线| 亚州综合色图| 影音综合网| 精爱久久| 亚洲中文人妻色| AV天天综合| 久热99| 久久这里都是精品| 大香网伊人久久综合| 啪一啪免费视频| 综合操逼| 日韩一级片| 亚洲超碰在线| 人妻天天夜夜爽一区二区| 欧美性爱五月天| 亚洲中文字幕乱码无码一区二区| 爱爱动态120秒| 午夜性| 色超碰综合| 9久9久9久9久视频网站| 97色操| 18禁看网站一区| 久久激情亚洲精品无码?V| 日本色色的视频| 99操| 丝袜视频一区二区在线播放国产中文| 熟妇熟女一区二三区| 欧美在线视频观看一二三四区高清| 五月丁香狠狠爱| 亚洲性爱成人| 99操逼| 日日AV加勒比| 色偷偷综合91久久噜噜| 久久久96| 手机在线看片免费人成视频| 蜜臀av在线播放一区二区三区| 国产精品熟女九九九| 欧美激情区| 欧美一级国产一级| 午夜精品久久久久| 日韩av不卡在线看| 熟妇激情| 亚洲熟女中文字幕在线| 日韩欧美中文字亚洲慕| 午夜福利免费精品视频| 人伦四五区| 曰韩av中文字幕专区| 精品国产乱码久久久影院| 精品国产一级久久| 91宗合网| 蜜桃精品一区二区三区ww| 玖玖爱影院| 五月天伊人| 国产97色在线| 精品一区二区三区麻豆| 亚洲最大91网| 老熟女搡BBBB搡BBBB视频| 免费男人的天堂| 亚洲色吧网| 精品视频一区二区| 日韩成人电影AV| 成 人 A V免费视频在线观看| 性爱动态120秒| 人妻精品免费一二三区| 国产福利夜| 久久久久久十| 伊人97色天使| 亚洲h片在线免费观看| 日欧毛片久久| 亚洲欧美综合区自拍另类| 97日韩欧美亚洲| 日韩亚洲美女一区久久| 99re超碰| 亚洲成人精品久久久| 亚洲资源站| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 青娱乐久久艹| 婷婷人妻激情| 女色视频社区| 亚洲日韩精品久久久久一区壹牛| 色穴精品| 天天操夜夜操狠很操| 综合情欲网| 国产夫妻一区二区| 一级性爱视频免费在线| 欧美大色交| 午夜精品99久久久久传媒| 日韩人成网站在线播放| 91爱剪切久久| 色偷综合|