999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AutoCAD二次開(kāi)發(fā)的CASS地物直角化算法改進(jìn)

2017-09-22 05:41:48熊忠招陶彣君
地理空間信息 2017年9期
關(guān)鍵詞:二次開(kāi)發(fā)測(cè)繪

熊忠招,陶彣君

(1.湖北省國(guó)土測(cè)繪院,湖北 武漢 430010)

基于AutoCAD二次開(kāi)發(fā)的CASS地物直角化算法改進(jìn)

熊忠招1,陶彣君1

(1.湖北省國(guó)土測(cè)繪院,湖北 武漢 430010)

針對(duì)因數(shù)字化誤差或策略誤差造成地物角點(diǎn)不是直角而需進(jìn)行修正的問(wèn)題,提出了一種基于AutoCAD的,既能保證地物角點(diǎn)正確直角化,又能保證糾正后頂點(diǎn)偏離原始頂點(diǎn)的坐標(biāo)值盡可能小的高效算法。實(shí)踐表明,該算法能夠高效完成地物直角化的工作,簡(jiǎn)單易行,可滿足實(shí)際生產(chǎn)需要。

AutoCAD;直角化;二次開(kāi)發(fā);CASS

隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,GNSS﹑無(wú)人機(jī)等一 大批新興技術(shù)越來(lái)越多地融入到測(cè)繪數(shù)據(jù)采集中,在利用計(jì)算機(jī)進(jìn)行地形圖繪制或?qū)σ延屑堎|(zhì)地形圖進(jìn)行掃描矢量化時(shí)[1-6],常會(huì)出現(xiàn)某些地物所有或某些頂點(diǎn)需要直角化的情況。傳統(tǒng)做法是采用手工方法對(duì)需要直角化的頂點(diǎn)進(jìn)行糾正,或?qū)⒌匦螆D導(dǎo)入其他具有直角糾正功能的商業(yè)軟件中進(jìn)行糾正,不僅效率低下,且有可能得不到想要的直角糾正結(jié)果。圖1為使用CASS軟件自帶的直角糾正功能對(duì)地物進(jìn)行直角糾正的結(jié)果(虛線為糾正前的圖形,實(shí)線為糾正后的圖形)。對(duì)比糾正前后圖形可知,圖形發(fā)生了翻轉(zhuǎn),與原圖形偏差巨大,完全不滿足直角糾正的要求。

圖1 CASS軟件直角糾正功能糾正后效果圖

鑒于此,本文結(jié)合已有商業(yè)軟件和算法的優(yōu)勢(shì),對(duì)這些算法進(jìn)行優(yōu)化,提出了一種以每條邊中點(diǎn)為旋轉(zhuǎn)基點(diǎn),結(jié)合頂點(diǎn)內(nèi)角判定方法進(jìn)行直角糾正的高效地物直角化算法,以滿足對(duì)地形圖地物直角化的需求。

1 算法設(shè)計(jì)

1.1 線段不同位置構(gòu)建直角效果對(duì)比

圖2中ABCD為一個(gè)四邊形,其中∠B和∠C不是直角,需對(duì)這兩個(gè)角進(jìn)行直角化。該圖形中可以AB邊為基準(zhǔn),將BC邊糾正為與AB邊垂直。

圖2 線段不同位置構(gòu)建直角效果對(duì)比圖

通過(guò)BC邊上的任意一點(diǎn)作AB邊的垂線,即可得到∠B糾正后的新位置。雖然可有任意多種作直角的方式,但存在3種特殊情況:

1)以頂點(diǎn)B為基準(zhǔn),過(guò)頂點(diǎn)B作AB邊的垂線,即BC″邊,此時(shí)頂點(diǎn)B相對(duì)于糾正前的偏離距離為0,頂點(diǎn)C相對(duì)于糾正前的偏離距離為CC″。

2)通過(guò)BC邊的中點(diǎn)M作AB邊的垂線,相交于B′點(diǎn),此時(shí)頂點(diǎn)B相對(duì)于糾正前的偏離距離為BB′,頂點(diǎn)C相對(duì)于糾正前的偏離距離為CC ′。

3)以頂點(diǎn)C作為基準(zhǔn),過(guò)頂點(diǎn)C作AB邊的垂線,此時(shí)頂點(diǎn)B相對(duì)于糾正前的偏離距離為CC″,頂點(diǎn)C相對(duì)于糾正前的偏離距離為0。

綜合上述3種情況可以看出,第二種方法最為合理,能使多邊形中各頂點(diǎn)的偏離距離基本保持一致,不會(huì)存在偏離過(guò)大或過(guò)小的情況,本文采用該方法。

1.2 以最接近90°頂點(diǎn)進(jìn)行直角構(gòu)建

圖3為圖4中的頂點(diǎn)C的局部圖,∠C是與90°最為接近的角,故對(duì)該圖形進(jìn)行直角化應(yīng)該從頂點(diǎn)C開(kāi)始。建立初始邊的具體步驟為:①計(jì)算BC邊和CD邊的中點(diǎn),以各自邊的中點(diǎn)作為該條邊后續(xù)的旋轉(zhuǎn)基點(diǎn)。②將各頂點(diǎn)處的內(nèi)角值與90°進(jìn)行比較:若該頂點(diǎn)處的內(nèi)角值大于90°,則將該頂點(diǎn)相鄰兩條邊各自往多邊形的外部旋轉(zhuǎn)差值的一半(否則會(huì)導(dǎo)致該頂點(diǎn)新位置偏離原始位置過(guò)大,旋轉(zhuǎn)后得到的新位置是所有方法中偏離原始位置最小的);若小于90°,則向多邊形內(nèi)部旋轉(zhuǎn)差值的一半。如圖3所示,頂點(diǎn)C未處理前的內(nèi)角為89°,小于90°,故將頂點(diǎn)C相鄰兩條邊各自往多邊形內(nèi)部旋轉(zhuǎn)一半,得到新的交點(diǎn)C ′,此時(shí)該頂點(diǎn)變?yōu)?0°,頂點(diǎn)C的位置更改為新位置C ′,即完成了對(duì)頂點(diǎn)C的直角化,也為后續(xù)各頂點(diǎn)的直角化建立了基準(zhǔn)。

圖3 以最接近90°頂點(diǎn)進(jìn)行直角構(gòu)建示意圖

圖4 四邊形ABCD的各頂點(diǎn)內(nèi)角值

1.3 算法實(shí)現(xiàn)步驟

在考慮影響重構(gòu)閉合多邊形各條邊方向和各頂點(diǎn)位置等諸多因素的基礎(chǔ)上,本文設(shè)計(jì)算法實(shí)現(xiàn)的具體步驟為:

1)判斷多邊形是否閉合。如圖4所示,ABCD是一個(gè)具有4個(gè)頂點(diǎn)的多邊形,要將該地物的各內(nèi)角直角化,需要對(duì)閉合多邊形進(jìn)行判斷。首先必須判斷該多邊形是否閉合,若該多邊形為閉合多邊形則繼續(xù)執(zhí)行后續(xù)步驟,否則不處理。

2)判定多邊形的頂點(diǎn)個(gè)數(shù)。在繪圖軟件中,利用多段線進(jìn)行地物繪制時(shí),當(dāng)頂點(diǎn)≥2個(gè),即可讓該多段線閉合,而此時(shí)所繪制的地物是不能用于進(jìn)行直角糾正的,故需將頂點(diǎn)<4個(gè)的多邊形排除,不作處理。

3)判斷整個(gè)多邊形中是否有某一條邊平行于UCS的X軸或Y軸。具體方法為:①利用AutoCAD提供的方法獲取整體多段線的頂點(diǎn)坐標(biāo);②依次計(jì)算相鄰兩個(gè)點(diǎn)是否存在X坐標(biāo)或Y坐標(biāo)相等的情況,若存在,則表示該多邊形存在某一條邊平行于UCS的X軸或Y 軸,記錄該條邊并結(jié)束判斷,否則繼續(xù)判定其他頂點(diǎn)。

4)若步驟3)中判定出存在某一條邊平行于UCS的X軸或Y軸,則以該條邊為基準(zhǔn),以順指針或逆時(shí)針?lè)较?,依次從各條邊的中點(diǎn)作上一條計(jì)算結(jié)果邊的垂線,從而得到各頂點(diǎn)新的坐標(biāo)位置,待循環(huán)完成一 周則可將整個(gè)多邊形進(jìn)行直角化。

5)若步驟3)中判定為不存在某一條邊平行于UCS的X軸或Y軸,則需要計(jì)算各頂點(diǎn)處該多邊形的內(nèi)角值(圖4),并將所有內(nèi)角值與90°進(jìn)行比較,找出差值最小的一個(gè)頂點(diǎn)。

6)在與90°最接近的頂點(diǎn)處構(gòu)建一個(gè)直角,以便將該頂點(diǎn)直角化,待找出第一個(gè)頂點(diǎn)位置后,按照步驟4)循環(huán)處理每一條邊,即對(duì)整個(gè)多邊形進(jìn)行直角化。

1.4 程序流程圖

結(jié)合實(shí)際程序設(shè)計(jì),對(duì)地物進(jìn)行直角化的程序如圖5所示。

圖5 直角糾正的流程圖

2 算法實(shí)現(xiàn)與應(yīng)用效果

2.1 算法實(shí)現(xiàn)

本算法利用ObjectARX .NET編寫程序,并在AutoCAD下測(cè)試通過(guò)[7-12]。其具體的核心實(shí)現(xiàn)代碼為:

‘開(kāi)始事務(wù)處理,也就是往CAD中加入東西

using (Transaction trans = tm.StartTransaction())

{

BlockTable bt = (BlockTable)tm.GetObject(db.BlockTableId, OpenMode.ForRead, false);

BlockTableRecord btr = (BlockTableRecord)tm.GetObject(b t[BlockTableRecord.ModelSpace], OpenMode.ForWrite, false);

‘遍歷建立選擇實(shí)體的ObjectID集合

foreach (ObjectId obj in objs)

{

Entity ent = trans.GetObject(obj, OpenMode.ForWrite) as Entity;

if (!(ent is Polyline))

continue;

Polyline pl = ent as Polyline;

if (pl.Closed == false)

continue; ‘必須是閉合多邊形才進(jìn)行處理

Point3dCollection pts = new Point3dCollection();

pl.GetStretchPoints(pts);

for (int i = 0; i < pts.Count - 2; i++)

{

Point3d ptqian = pts[i];

Point3d pt = pts[i + 1];

Point3d pthou = pts[i + 2];

Point3d midqian = new Point3d((pt.X + ptqian.X) / 2, (pt.Y + ptqian.Y) / 2, (pt.Z + ptqian.Z) / 2);

Point3d midhou = new Point3d((pt.X + pthou.X) / 2, (pt.Y + pthou.Y) / 2, (pt.Z + pthou.Z) / 2);

Point3d pt1 = new Point3d(midqian.X, midhou.Y, pt.Z);

Point3d pt2 = new Point3d(midhou.X, midqian.Y, pt.Z);

double d1 = pt1.Convert2d(new Plane()).GetDistanceTo(pt. Convert2d(new Plane()));

double d2 = pt2.Convert2d(new Plane()).GetDistanceTo(pt. Convert2d(new Plane()));

Point3d newpt = d1 > d2 ? new Point3d(pt2.ToArray()) : new Point3d(pt1.ToArray());

‘使用新的點(diǎn)代替原始點(diǎn)

pl.RemoveVertexAt(i + 1);

pl.AddVertexAt(i + 1, newpt.Convert2d(new Plane()), pl.GetBulgeAt(i + 1), pl.GetStartWidthAt(i + 1), pl.GetEndWidthAt(i + 1));

}

‘倒數(shù)第1個(gè)點(diǎn)

Point3d ptqian1 = pts[pts.Count - 2];

Point3d pt01 = pts[pts.Count - 1];

Point3d pthou1 = pts[0];

Point3d midqian1 = new Point3d((pt01.X + ptqian1.X) / 2, (pt01.Y + ptqian1.Y) / 2, (pt01.Z + ptqian1.Z) / 2);

Point3d midhou1 = new Point3d((pt01.X + pthou1.X) / 2, (pt01.Y + pthou1.Y) / 2, (pt01.Z + pthou1.Z) / 2);

Point3d pt11 = new Point3d(midqian1.X, midhou1.Y, pt01.Z);

Point3d pt12 = new Point3d(midhou1.X, midqian1.Y, pt01.Z);

double d11 = pt11.Convert2d(new Plane()). GetDistanceTo(pt01.Convert2d(new Plane()));

double d12 = pt12.Convert2d(new Plane()). GetDistanceTo(pt01.Convert2d(new Plane()));

Point3d newpt1 = d11 > d12 ? new Point3d(pt12.ToArray()) : new Point3d(pt11.ToArray());

‘使用新的點(diǎn)代替原始點(diǎn)

pl.RemoveVertexAt(pts.Count - 1);

pl.AddVertexAt(pts.Count - 1, newpt1.Convert2d(new Plane()), pl.GetBulgeAt(pts.Count - 2), pl.GetStartWidthAt(pts. Count - 2), pl.GetEndWidthAt(pts.Count - 2));

‘第一個(gè)點(diǎn)

Point3d ptqian2 = pts[pts.Count - 1];

Point3d pt02 = pts[0];

Point3d pthou2 = pts[1];

Point3d midqian2 = new Point3d((pt02.X + ptqian2.X) / 2, (pt02.Y + ptqian2.Y) / 2, (pt02.Z + ptqian2.Z) / 2);

Point3d midhou2 = new Point3d((pt02.X + pthou2.X) / 2, (pt02.Y + pthou2.Y) / 2, (pt02.Z + pthou2.Z) / 2);

Point3d pt21 = new Point3d(midqian2.X, midhou2.Y, pt02. Z);

Point3d pt22 = new Point3d(midhou2.X, midqian2.Y, pt02. Z);

double d21 = pt21.Convert2d(new Plane()). GetDistanceTo(pt02.Convert2d(new Plane()));

double d22 = pt22.Convert2d(new Plane()). GetDistanceTo(pt02.Convert2d(new Plane()));

Point3d newpt2 = d21 > d22 ? new Point3d(pt22.ToArray()) : new Point3d(pt21.ToArray());

‘使用新的點(diǎn)代替原始點(diǎn)

pl.RemoveVertexAt(0);

pl.AddVertexAt(0, newpt2.Convert2d(new Plane()), pl.GetBulgeAt(0), pl.GetStartWidthAt(0), pl.GetEndWidthAt(0));

}

trans.Commit();

}

在AutoCAD中輸入地物直角化命令后便會(huì)出現(xiàn)如圖6所示的程序界面,在該界面中可設(shè)置多段線頂點(diǎn)偏離直角的最大允許角度,也可設(shè)置是否只處理多段線所有內(nèi)角偏離值均在限差之內(nèi)的多邊形。如果設(shè)置只處理所有內(nèi)角偏離值均在限差之內(nèi)的多邊形,則若某個(gè)多邊形的某個(gè)內(nèi)角與90°的差值大于程序界面所設(shè)值,則程序會(huì)跳過(guò)該多邊形,不作任何處理;如果未作該項(xiàng)設(shè)置,則程序會(huì)對(duì)所有多邊形進(jìn)行處理,且會(huì)對(duì)偏離值在程序設(shè)置的最大允許角度以內(nèi)的多邊形頂點(diǎn)進(jìn)行直角化,其余頂點(diǎn)保持不變。這些參數(shù)設(shè)置完成后,在AutoCAD命令行中還可選擇單個(gè)直角糾正或整體糾正,以及對(duì)全圖或單個(gè)多邊形進(jìn)行處理等。

圖6 程序運(yùn)行界面

2.2 應(yīng)用效果展示

目前,國(guó)內(nèi)生產(chǎn)單位普遍使用的數(shù)字化繪圖成圖軟件均采用AutoCAD作為平臺(tái),所需要的地形圖數(shù)據(jù)格式也是AutoCAD的dwg格式。如果采用導(dǎo)入其他商業(yè)軟件中進(jìn)行直角糾正后再導(dǎo)入AutoCAD中的方法,不僅繁瑣,還會(huì)造成某些屬性的丟失,給客戶造成不必要的麻煩。南方CASS是基于AutoCAD開(kāi)發(fā)的一款數(shù)字成圖軟件,也帶有直角糾正功能,但其直角糾正功能存在諸多問(wèn)題,某些多邊形直角糾正后出現(xiàn)了嚴(yán)重錯(cuò)誤,且其只能處理多段線所有內(nèi)角偏離值均在限差之內(nèi)的多邊形,不能完全滿足用戶的需要。圖7為利用本文算法編寫的程序模塊對(duì)地物進(jìn)行直角化處理后的效果圖(圖中實(shí)線為原始多邊形,虛線為直角化后的多邊形),可以看出,所有多邊形均已直角化,且每個(gè)頂點(diǎn)直角化后與原始位置偏離較小,保證了各頂點(diǎn)直角化后的位置精度。

圖7 地物直角化效果圖

利用該方法進(jìn)行地物的直角化糾正已應(yīng)用于實(shí)際生產(chǎn)中。實(shí)踐證明,該方法不僅能夠保證地物各頂點(diǎn)的精度,而且能夠滿足對(duì)于地物直角化的需求,非常高效。在筆記本電腦上做測(cè)試,對(duì)一幅包含有3 313個(gè)閉合多邊形的地形圖作直角糾正,利用該算法能夠在0.3 s內(nèi)完成直角化,這些多邊形中頂點(diǎn)最少為4個(gè),頂點(diǎn)最多為200個(gè)。程序運(yùn)行時(shí)間隨多邊形頂點(diǎn)個(gè)數(shù)的變化而變化,且程序運(yùn)行時(shí)間均在能夠接受的范圍之內(nèi)。

3 結(jié) 語(yǔ)

本文對(duì)地物直角化的算法進(jìn)行了詳細(xì)介紹,并對(duì)如何選擇起始基準(zhǔn)邊和起始基準(zhǔn)頂點(diǎn)做了詳細(xì)分析和闡述。在此基礎(chǔ)上,本文對(duì)該算法進(jìn)行了具體實(shí)現(xiàn),并通過(guò)實(shí)際應(yīng)用證明了該算法能夠滿足實(shí)際生產(chǎn)需要,對(duì)地物的直角化效率高,直角化后對(duì)地物的頂點(diǎn)坐標(biāo)保持更小的偏移,大大提高了生產(chǎn)效率。但該算法仍存在一些不足,如對(duì)于邊長(zhǎng)懸殊過(guò)大﹑某些特殊角度等情況仍可能會(huì)產(chǎn)生一定程度的問(wèn)題,期望在對(duì)算法進(jìn)行改進(jìn)和優(yōu)化時(shí),著重解決上述問(wèn)題。

[1] 鐘業(yè)勛.數(shù)理地圖學(xué):地圖學(xué)及其數(shù)學(xué)原理[M].北京:測(cè)繪出版社,2007:29-68

[2] 祝國(guó)瑞.地圖學(xué)[M].武漢:武漢大學(xué)出版社,2004:36-95

[3] 何孝瑩,包紅巖,韓顏?lái)?大比例尺掃描地形圖中房屋的識(shí)別[J].測(cè)繪與空間地理信息,2005,28(4):61-63

[4] 劉彥花,向南平.地圖掃描矢量化問(wèn)題分析[J].四川測(cè)繪,2001,24(3):120-121,124

[5] 易輝偉,江資斌,周翠竹,等.地形圖矢量化的后處理[J].中國(guó)有色金屬學(xué)報(bào),2002,12(4):808-811

[6] 龔子楨,花向紅,徐秀川,等.在CAD平臺(tái)下實(shí)現(xiàn)房屋屬性自動(dòng)修改的方法[J].測(cè)繪通報(bào),2011(9):80-82,94

[7] 蔡希林.AutoCAD2006中文版實(shí)用教程[M].北京:清華大學(xué)出版社,2006

[8] 李冠億.深居淺出AutoCAD二次開(kāi)發(fā)基礎(chǔ)[M].北京:中國(guó)建筑工業(yè)出版社,2012

[9] 曾洪飛,張帆,盧擇臨.AutoCAD VBA & VB.NET開(kāi)發(fā)基礎(chǔ)與實(shí)例教程[M].北京:中國(guó)電力出版社,2009

[10] 張帆,鄭立楷,王華杰,等.AutoCAD VBA 開(kāi)發(fā)精彩實(shí)例教程[M].北京:清華大學(xué)出版社,2004

[11] John Sharp. Visual C#2010從入門到精通[M].周靖,譯.北京:清華大學(xué)出版社,2010

[12] 劉彬.基于.NET的AutoCAD二次開(kāi)發(fā)實(shí)例[J].現(xiàn)代礦業(yè),2009(12):120-122

P283

B

1672-4623(2017)09-0041-04

10.3969/j.issn.1672-4623.2017.09.014

2017-03-07。

熊忠招,高級(jí)工程師,主要從事基礎(chǔ)測(cè)繪生產(chǎn)技術(shù)和管理工作。

猜你喜歡
二次開(kāi)發(fā)測(cè)繪
淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
浙江省第一測(cè)繪院
工程測(cè)繪中GNSS測(cè)繪技術(shù)的應(yīng)用
西門子Operate高級(jí)編程的旋轉(zhuǎn)坐標(biāo)系二次開(kāi)發(fā)
淺談Mastercam后處理器的二次開(kāi)發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
測(cè)繪新技術(shù)在測(cè)繪工程中的應(yīng)用
江西建材(2018年4期)2018-04-10 12:37:38
04 無(wú)人機(jī)測(cè)繪應(yīng)用創(chuàng)新受青睞
無(wú)人機(jī)在地形測(cè)繪中的應(yīng)用
電子制作(2017年9期)2017-04-17 03:01:00
測(cè)繪簡(jiǎn)史
Micaps3.2 版本二次開(kāi)發(fā)入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
主站蜘蛛池模板: 深夜福利视频一区二区| 日韩中文欧美| 国产精品部在线观看| 国产乱子伦手机在线| 欧美狠狠干| 在线观看视频一区二区| 国产区成人精品视频| 亚洲精品无码在线播放网站| 性做久久久久久久免费看| 国产成人永久免费视频| 欧美专区在线观看| 亚洲日韩高清在线亚洲专区| 国产高清无码第一十页在线观看| 日韩国产一区二区三区无码| 欧美日韩第三页| 国产精品999在线| 亚欧成人无码AV在线播放| h网站在线播放| 精品午夜国产福利观看| 精品视频91| 91九色国产在线| 亚洲视频欧美不卡| 久久性妇女精品免费| 亚洲婷婷丁香| 色噜噜狠狠狠综合曰曰曰| 欧美成一级| 亚洲—日韩aV在线| 亚洲人成网18禁| 久久天天躁夜夜躁狠狠| 成人免费一级片| 亚洲精品免费网站| 污网站在线观看视频| 日本国产一区在线观看| 在线va视频| 亚洲最猛黑人xxxx黑人猛交 | jizz在线免费播放| 久久久久亚洲av成人网人人软件 | 亚洲码一区二区三区| 成人在线天堂| 国产午夜人做人免费视频中文| 国产精品林美惠子在线观看| 一级福利视频| 国产在线观看第二页| 凹凸国产熟女精品视频| 久久黄色影院| 真人高潮娇喘嗯啊在线观看| 九九热这里只有国产精品| 国产美女无遮挡免费视频网站| 欧美性久久久久| 白浆免费视频国产精品视频 | 91小视频版在线观看www| 国产极品美女在线| 鲁鲁鲁爽爽爽在线视频观看 | 亚洲视频二| 国产精品片在线观看手机版| 久久免费视频6| 国产日韩欧美精品区性色| 国产视频自拍一区| 日韩中文字幕亚洲无线码| 国产成人综合亚洲欧美在| 日韩AV无码一区| 精品久久久久久中文字幕女| 亚洲欧美天堂网| 99r在线精品视频在线播放 | 99久久精品国产精品亚洲| 国产乱码精品一区二区三区中文| 国产亚洲欧美在线中文bt天堂 | 热久久这里是精品6免费观看| 久久精品人妻中文视频| 亚洲欧洲免费视频| 国产精品嫩草影院av| 日韩欧美中文| 亚洲精品福利网站| 丝袜无码一区二区三区| 高清码无在线看| 国产精品第页| 狼友视频一区二区三区| 久久国语对白| 国产情精品嫩草影院88av| 亚洲中文在线看视频一区| 国产欧美高清| 亚洲av色吊丝无码|