日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 模擬在天空中放風箏的示例代碼

瀏覽:182日期:2022-06-21 18:09:51
1 前言

昨天是農歷的三月初三,相傳這一天是軒轅黃帝的誕辰日。春秋時期,三月初三的紀念活動還是非常隆重的,至魏晉則演變為達官顯貴、文人雅士臨水宴飲的節日。蘭亭序中提到的'曲水流觴',也許就是這一習俗的寫照吧(個人猜想,未經考證)。唐以后,三月初三漸漸湮沒于歷史的長河中。于我而言,三月初三卻是一個放風箏的日子。每逢這一天,耳邊總會響起一首老歌:又是一年三月三,風箏飛滿天……上班路上,看道路兩側草長鶯飛、楊柳拂面,一時玩心頓起:何不用3D構造一個天上白云飄飄,地上綠草茵茵的虛幻空間,在里面放飛幾只風箏自娛自樂呢?心動不如行動。打開Python的IDLE,經過一番嘗試,竟然輕松在一片遼闊的草原上放飛了幾只風箏。風箏們迎風飄動,長長的風箏線像懸鏈一樣跟著擺動。拖動鼠標,還可以從不同的角度、距離欣賞,恍若置身于大草原上。

python 模擬在天空中放風箏的示例代碼

如果覺得好玩,就跟我一起到草原放風箏吧。先說好了,你可以搭我的便車,食宿請自理。不多說了,快上車!

2 原材料2.1 Python環境和模塊

一臺安裝了Python環境的電腦,Python環境需要安裝以下模塊。

numpy scipy pillow wxgl

如果沒有上述模塊,請參考下面的命令安裝。我剛剛升級了wxgl模塊(從0.6.3升級到0.6.4),如果此前有安裝,請刪除后再次安裝.

pip install numpypip install scipypip install pillowpip install wxgl

NumPy和pillow是Python旗下最常用的科學計算庫和圖像處理庫,屬于常用模塊。WxGL是一個基于PyOpenGL的三維數據可視化庫,以wx為顯示后端,提供Matplotlib風格的交互式應用模式,同時,也可以和wxPython無縫結合,在wx的窗體上繪制三維模型。關于WxGL的更多信息,請參閱我的另一篇博客《十分鐘玩轉3D繪圖:WxGL完全手冊》。

2.2 草原和風箏素材

請下載下面的草原和風箏素材,保存到項目路徑下的res文件夾中。如果使用其他圖片,請保持草原圖片的寬高比為4:3,風箏素材需要帶透明通道的png格式。草原素材:sky.jpg

python 模擬在天空中放風箏的示例代碼

風箏素材:butterfly.jpg

python 模擬在天空中放風箏的示例代碼

風箏素材:eagle.jpg

python 模擬在天空中放風箏的示例代碼

風箏素材:fish.jpg

python 模擬在天空中放風箏的示例代碼

2.3 打開IDLE,導入模塊

>>> import numpy as np>>> from PIL import Image>>> import wxgl.wxplot as plt # 交互式3D繪圖庫>>> from scipy.spatial.transform import Rotation # 空間旋轉計算3 制作工序3.1 藍天和草原

用3D繪制天空,最常用的方法是天空頂和天空盒。不過,這兩個方法都有局限性,效果只能說差強人意。我們這里用的是天空盒。所謂天空盒,顧名思義,就是從一張圖片上裁切出六個矩形,拼成一個六面體,觀察者站在六面體內,就有了“天蒼蒼野茫茫”的趕腳。

python 模擬在天空中放風箏的示例代碼

下圖是從上圖裁切出的上下前后左右六個面。

python 模擬在天空中放風箏的示例代碼

了解了天空盒的原理,實現起來就簡單多了。先來裁切上下前后左右六個面。

>>> im = np.array(Image.open(r’D:tempkiteressky.jpg’)) # 打開藍天草原的圖片>>> u = im.shape[0]//3 # 天空盒(正六面體的棱長)>>> im_top = im[:u, u:2*u, :]>>> im_left = im[u:2*u, :u, :]>>> im_front = im[u:2*u, u:2*u, :]>>> im_right = im[u:2*u, 2*u:3*u, :]>>> im_back = im[u:2*u, 3*u:, :]>>> im_bottom = im[2*u:, u:2*u, :]

再生成立方體的六個面在三維空間中的坐標,其中每個面用四個頂點表示,頂點按逆時針方向排列。立方體的棱長為2,也就是xyzz坐標都在[-1,1]范圍內。

>>> vs_front = np.array([[-1,-1,1], [-1,-1,-1], [-1,1,-1], [-1,1,1]])>>> vs_left = np.array([[1,-1,1], [1,-1,-1], [-1,-1,-1], [-1,-1,1]])>>> vs_right = np.array([[-1,1,1], [-1,1,-1], [1,1,-1], [1,1,1]])>>> vs_top = np.array([[1,-1,1], [-1,-1,1], [-1,1,1], [1,1,1]])>>> vs_bottom = np.array([[-1,-1,-1], [1,-1,-1], [1,1,-1], [-1,1,-1]])>>> vs_back = np.array([[1,-1,1], [1,-1,-1], [1,1,-1], [1,1,1]])

有了六個面的材質和頂點,就可以使用surface函數繪制天空盒了。

>>> plt.surface(vs_front, texture=im_front, alpha=False)>>> plt.surface(vs_left, texture=im_left, alpha=False)>>> plt.surface(vs_right, texture=im_right, alpha=False)>>> plt.surface(vs_top, texture=im_top, alpha=False)>>> plt.surface(vs_bottom, texture=im_bottom, alpha=False)>>> plt.surface(vs_back, texture=im_back, alpha=False)>>> plt.show()

咦?不對啊,為什么我在天空盒外而不是天空盒內呢?

python 模擬在天空中放風箏的示例代碼

原來,WxGL默認觀察者距離坐標原點5個單位的距離,而天空盒在[-1,1]范圍內,自然就處于天空盒外了。莫著急,只要設置一下畫布函數plt.figure()的參數,就OK了。參數dist用于設置觀察者距離觀察目標的距離,配合方位角參數azimuth和仰角參數elevation,可以確定觀察者位置;參數view用于設置視景體,view數組的6個元素分別表示視景體的左、右、上、下面,以及前后面距離觀察者的距離。

>>> plt.figure(dist=0.8, view=[-1, 1, -1, 1, 0.8, 7], elevation=0, azimuth=0)>>> plt.surface(vs_front, texture=im_front, alpha=False)>>> plt.surface(vs_left, texture=im_left, alpha=False)>>> plt.surface(vs_right, texture=im_right, alpha=False)>>> plt.surface(vs_top, texture=im_top, alpha=False)>>> plt.surface(vs_bottom, texture=im_bottom, alpha=False)>>> plt.surface(vs_back, texture=im_back, alpha=False)>>> plt.show()

天空盒最終的效果如下圖所示。嘗試拖動鼠標、滑動滾輪,你會發現天空盒的缺陷。不過,這不會影響我們放飛風箏。

python 模擬在天空中放風箏的示例代碼

為了方便后續操作,我們將繪制天空盒的代碼封裝成一個函數。

>>> def draw_sky_box():plt.surface(vs_front, texture=im_front, alpha=False)plt.surface(vs_left, texture=im_left, alpha=False)plt.surface(vs_right, texture=im_right, alpha=False)plt.surface(vs_top, texture=im_top, alpha=False)plt.surface(vs_bottom, texture=im_bottom, alpha=False)plt.surface(vs_back, texture=im_back, alpha=False)>>> 3.2 第一只風箏

現在觀察者位于(0.8,0,0)的位置,假定風箏中心位于v1點(-0.5,-0.3,0.2)的位置(觀察者左前上方)。我們需要根據風箏素材的尺寸,確定風箏在空間中的坐標。

>>> im_kite = np.array(Image.open(r’D:tempkiteresbutterfly.png’)) # 打開風箏圖片>>> max_s = max(im_kite.shape) # 風箏的最長邊>>> dx, dy = 0.1*im_kite.shape[0]/max_s, 0.1*im_kite.shape[1]/max_s # 計算風箏在空間中的實際尺寸>>> v1 = (-0.5,-0.3,0.2) # 風箏中心位置>>> vs_kite = np.array([[dx,-dy,0.03], [-dx,-dy,0], [-dx,dy,0], [dx,dy,0.03]]) # 風箏四角的坐標,前端略高(后仰0.03)>>> vs_kite[:,0] += v1[0] # 從原點移到v1點>>> vs_kite[:,1] += v1[1] # 從原點移到v1點>>> vs_kite[:,2] += v1[2] # 從原點移到v1點>>> plt.figure(dist=0.8, view=[-1, 1, -1, 1, 0.8, 7], elevation=0, azimuth=0) # 設置畫布>>> draw_sky_box() # 繪制天空盒>>> plt.surface(vs_kite, texture=im_kite, alpha=True) # 繪制風箏(png格式需要使用透明通道)>>> plt.show()

至此,終于在草原上放飛了第一只風箏。

python 模擬在天空中放風箏的示例代碼

3.3 給風箏加上線

風箏線近似于一條懸鏈線,我們可以用三次曲線模擬。如果放風箏的人在v0點,風箏中心位于v1點,風箏線就可以用k個點來描述。先來定義一個根據v0點和v1點計算風箏線的函數。

>>> def get_line(v0, v1, k=300):m = np.power(np.linspace(0,k,k), 3)/(k*k*k)dx, dy = v1[0]-v0[0], v1[1]-v0[1]x = v1[0] - m*dxy = v1[1] - m*dyz = np.linspace(v1[2], v0[2], k)return x, y, z>>>

重復一遍繪制天空盒和風箏的代碼,稍加修改,即可加上風箏線。

>>> v0 = (0.5,0.2,-1) # 放風箏的人在v0點>>> v1 = (-0.5,-0.3,0.2) # 風箏中心位于v1點>>> xs, ys, zs = get_line(v0, v1) # 計算風箏懸鏈線>>> plt.figure(dist=0.8, view=[-1, 1, -1, 1, 0.8, 7], elevation=0, azimuth=0) # 設置畫布>>> draw_sky_box() # 繪制天空盒>>> plt.surface(vs_kite, texture=im_kite, alpha=True) # 繪制風箏>>> plt.plot(xs, ys, zs, color=’#C0C0C0’, width=0.3) # 繪制風箏懸鏈線>>> plt.show()

plt.plot()函數用于繪制點或線,參數width用于設置線寬。如果覺得風箏線不夠明顯,可以適當增加線寬。

python 模擬在天空中放風箏的示例代碼

3.4 讓風箏動起來

想象一下風箏在天空中的飄動姿態,其運動軌跡有兩個特點:

水平方向延弧線擺動,幅度約30°左右

擺動到左側則左側稍低,擺動到右側則右側稍低

據此,不難模擬出風箏的擺動軌跡,計算出運動軌跡線上每一處風箏的坐標,同時計算出對應的風箏懸鏈線。啟動一個定時器,順序顯示軌跡線上每一處風箏及其懸鏈線,形成動畫。

WxGL的plt.surface()函數和plt.plot()函數,支持通過參數slide=True將對應的模型放入一個動畫序列,執行plt.show()的時候,會自動播放這個模型序列,時間間隔由plt.figure()函數的interval參數決定,默認值100毫秒。如果多個模型需要同時顯示,只需要用name參數為多個模型指定相同的名字即可。

好,我們來定義一個繪制飄動風箏的函數。

>>> def draw_kite(fn, v0, v1, dh=0.03, ex=(-20,20), fs=160):im_kite = np.array(Image.open(fn)) # 打開風箏圖片max_s = max(im_kite.shape) # 風箏的最長邊dx, dy = 0.1*im_kite.shape[0]/max_s, 0.1*im_kite.shape[1]/max_s # 計算風箏在空間中的實際尺寸 delta = np.hstack((np.linspace(-0.03, 0.03, fs), np.linspace(0.03, -0.03, fs))) # 風箏左右擺動過程中的高度波動theta = np.hstack((np.linspace(ex[0], ex[1], fs), np.linspace(ex[1], ex[0], fs))) # 風箏左右擺動的角度vs_kite = np.array([[dx,-dy,dh], [-dx,-dy,0], [-dx,dy,0], [dx,dy,dh]]) # 風箏四角的坐標,前端略高(后仰)vs_kite[:,0] += v1[0]vs_kite[:,1] += v1[1]vs_kite[:,2] += v1[2] offset = np.random.randint(0, 2*fs)for i in range(2*fs): k = (i+offset)%(2*fs) rotator = Rotation.from_euler(’xyz’, [0, 0, theta[k]], degrees=True) vs = rotator.apply(vs_kite) vs[:2, 2] -= delta[k] vs[2:, 2] += delta[k] plt.surface(vs, texture=im_kite, alpha=True, slide=True, name=’id_%d’%i) xs, ys, zs = get_line(v0, ((vs[0][0]+vs[2][0])/2,(vs[0][1]+vs[2][1])/2,(vs[0][2]+vs[2][2])/2)) plt.plot(xs, ys, zs, color=’#C0C0C0’, width=0.3, slide=True, name=’id_%d’%i) >>>

調用一下試試看。

>>> plt.figure(dist=0.8, view=[-1, 1, -1, 1, 0.8, 7], elevation=0, azimuth=0, interval=50) # 設置畫布,動畫間隔50毫秒>>> draw_sky_box() # 繪制天空盒>>> draw_kite(r’D:tempkiteresbutterfly.png’, (0.5,0.2,-1), (-0.5,-0.3,0.2)) # 繪制風箏>>> plt.show()

和我們設想的一樣,風箏在[-20°,20°]的范圍內左右擺動,懸鏈線也跟著一起飄動。

python 模擬在天空中放風箏的示例代碼

3.5 放飛更多的風箏

現在,我們有三張風箏的圖片,把它們都放飛到天空盒中吧。至于風箏的位置、放飛者的位置,你可以根據自己的想象,隨意定義。

>>> plt.figure(dist=0.8, view=[-1, 1, -1, 1, 0.8, 7], elevation=0, azimuth=0, interval=50)>>> draw_sky_box()>>> draw_kite(r’D:tempkiteresbutterfly.png’, (0.5,0.2,-1), (-0.5,-0.3,0.2))>>> plt.show()>>> plt.figure(dist=0.8, view=[-1, 1, -1, 1, 0.8, 7], elevation=0, azimuth=0, interval=50)>>> draw_sky_box()>>> draw_kite(r’D:tempkiteresbutterfly.png’, (0.5,0.2,-1), (-0.5,-0.3,0.2))>>> draw_kite(r’D:tempkiteresfish.png’, (0.3,0,-1), (-0.2,-0.1,0.05), ex=(-40,40))>>> draw_kite(r’D:tempkitereseagle.png’, (0.2,0.05,-1), (-0.6,0.5,0.35))>>> plt.show()

至此,大功告成。

python 模擬在天空中放風箏的示例代碼

4 完整源碼

# -*- coding: utf-8 -*-import numpy as npfrom PIL import Imageimport wxgl.wxplot as plt # 交互式3D繪圖庫from scipy.spatial.transform import Rotation # 空間旋轉計算def draw_sky_box(fn): '''繪制天空盒 fn - 圖片文件名(寬高比4:3) ''' im = np.array(Image.open(fn)) # 打開資源圖片 u = im.shape[0]//3 # 天空盒(正六面體的棱長) # 裁切出天空盒6個面:上下前后左右 im_top = im[:u, u:2*u, :] im_left = im[u:2*u, :u, :] im_front = im[u:2*u, u:2*u, :] im_right = im[u:2*u, 2*u:3*u, :] im_back = im[u:2*u, 3*u:, :] im_bottom = im[2*u:, u:2*u, :] # 定義天空盒六個面的頂點坐標,4個頂點按逆時針方向排列 vs_front = np.array([[-1,-1,1], [-1,-1,-1], [-1,1,-1], [-1,1,1]]) vs_left = np.array([[1,-1,1], [1,-1,-1], [-1,-1,-1], [-1,-1,1]]) vs_right = np.array([[-1,1,1], [-1,1,-1], [1,1,-1], [1,1,1]]) vs_top = np.array([[1,-1,1], [-1,-1,1], [-1,1,1], [1,1,1]]) vs_bottom = np.array([[-1,-1,-1], [1,-1,-1], [1,1,-1], [-1,1,-1]]) vs_back = np.array([[1,-1,1], [1,-1,-1], [1,1,-1], [1,1,1]]) # 繪制天空盒的六個面 plt.surface(vs_front, texture=im_front, alpha=False) plt.surface(vs_left, texture=im_left, alpha=False) plt.surface(vs_right, texture=im_right, alpha=False) plt.surface(vs_top, texture=im_top, alpha=False) plt.surface(vs_bottom, texture=im_bottom, alpha=False) plt.surface(vs_back, texture=im_back, alpha=False)def get_line(v0, v1, k=300): '''風箏線:從風箏底部到放飛者,近似懸鏈線 v0 - 放飛者坐標 v1 - 風箏底部系線處坐標 k - 描繪風箏線的點的數量,默認300點 ''' m = np.power(np.linspace(0,k,k), 3)/(k*k*k) dx, dy = v1[0]-v0[0], v1[1]-v0[1] x = v1[0] - m*dx y = v1[1] - m*dy z = np.linspace(v1[2], v0[2], k) return x, y, zdef draw_kite(fn, v0, v1, dh=0.03, ex=(-20,20), fs=160): '''繪制風箏 fn - 風箏圖片文件名(png格式,帶透明通道) dh - 風箏后仰高度,默認0.02 ex - 風箏左右擺動的角度范圍 fs - 風箏隨風擺動的幀數 ''' im_kite = np.array(Image.open(fn)) # 打開風箏圖片 max_s = max(im_kite.shape) # 風箏的最長邊 dx, dy = 0.1*im_kite.shape[0]/max_s, 0.1*im_kite.shape[1]/max_s # 計算風箏在空間中的實際尺寸 delta = np.hstack((np.linspace(-0.03, 0.03, fs), np.linspace(0.03, -0.03, fs))) # 風箏左右擺動過程中的高度波動 theta = np.hstack((np.linspace(ex[0], ex[1], fs), np.linspace(ex[1], ex[0], fs))) # 風箏左右擺動的角度 vs_kite = np.array([[dx,-dy,dh], [-dx,-dy,0], [-dx,dy,0], [dx,dy,dh]]) # 風箏四角的坐標,前端略高(后仰) vs_kite[:,0] += v1[0] vs_kite[:,1] += v1[1] vs_kite[:,2] += v1[2] offset = np.random.randint(0, 2*fs) for i in range(2*fs):k = (i+offset)%(2*fs)rotator = Rotation.from_euler(’xyz’, [0, 0, theta[k]], degrees=True)vs = rotator.apply(vs_kite)vs[:2, 2] -= delta[k]vs[2:, 2] += delta[k]plt.surface(vs, texture=im_kite, alpha=True, slide=True, name=’id_%d’%i)xs, ys, zs = get_line(v0, ((vs[0][0]+vs[2][0])/2,(vs[0][1]+vs[2][1])/2,(vs[0][2]+vs[2][2])/2))plt.plot(xs, ys, zs, color=’#C0C0C0’, width=0.3, slide=True, name=’id_%d’%i)if __name__ == ’__main__’: plt.figure(dist=0.8, view=[-1, 1, -1, 1, 0.8, 7], elevation=0, azimuth=0, interval=50) draw_sky_box(’res/sky.jpg’) draw_kite(’res/butterfly.png’, (0.5,0.2,-1), (-0.5,-0.3,0.2)) draw_kite(’res/fish.png’, (0.3,0,-1), (-0.2,-0.1,0.05), ex=(-40,40)) draw_kite(’res/eagle.png’, (0.2,0.05,-1), (-0.6,0.5,0.35)) plt.show()

以上就是python 模擬在天空中放風箏的示例代碼的詳細內容,更多關于python 模擬放風箏的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲三级在线| 欧美在线精品一区| 日韩av专区| 国产成人精品一区二区三区视频| 精品一区二区三区在线观看视频| 国产美女久久| 国产91在线精品| 激情视频一区二区三区| 日韩影院在线观看| 亚洲欧洲日韩精品在线| 日韩av一区二区在线影视| 亚洲精品婷婷| 国产精品观看| 日韩深夜视频| 合欧美一区二区三区| 少妇精品久久久一区二区| 国产精品欧美大片| 亚洲天堂一区二区| 视频一区在线播放| 欧美日韩精品一区二区三区在线观看| 久久不见久久见免费视频7| 国产一区二区三区亚洲综合| 欧美日韩一区二区三区视频播放| 午夜在线精品偷拍| 国产欧美在线观看免费| 日韩在线观看| 久久亚洲美女| 日本一区二区高清不卡| 激情欧美一区| 日韩高清不卡一区二区| 大香伊人久久精品一区二区 | 久久高清精品| 精品一区欧美| 欧美a级一区二区| 91成人超碰| 久久不见久久见中文字幕免费| 激情婷婷综合| 国产欧美日韩一级| 国精品一区二区| 日韩高清一区在线| 日韩天堂在线| 四虎成人精品一区二区免费网站| 国产va在线视频| 日韩精品中文字幕吗一区二区 | 久久精品国产999大香线蕉| 欧美另类综合| 久久精品国产99国产| 免费美女久久99| 国产白浆在线免费观看| 日韩av资源网| 2023国产精品久久久精品双| 久久不卡日韩美女| 亚洲精品看片| 婷婷激情一区| 麻豆免费精品视频| 亚洲日本免费电影| 极品日韩av| 国产精品蜜芽在线观看| 日韩精品视频网站| 欧美成人综合| 老色鬼精品视频在线观看播放| 亚洲免费在线| 久久久久99| 精品免费在线| 日韩成人在线看| 2023国产精品久久久精品双| 国产精品久久久久蜜臀| 欧美亚洲tv| 欧美午夜不卡| 日韩高清不卡| 国产剧情在线观看一区| 色8久久久久| 亚洲免费中文| 亚洲成人精品| 日韩在线视频精品| 麻豆精品99| 日韩精品一级| 亚洲精品乱码日韩| 亚洲一区二区成人| 久久国产小视频| 福利一区二区三区视频在线观看| 日韩美女精品| 日产欧产美韩系列久久99| 欧美另类专区| 激情欧美一区二区三区| 久久精品一区二区不卡| 国产第一亚洲| 精品三级国产| 久久影院资源站| 久久久久伊人| 精品一区视频| 色婷婷色综合| 91视频一区| 精品国产精品国产偷麻豆| 麻豆91精品视频| 免费亚洲一区| 国产精品va视频| 国产精品地址| 日本午夜精品视频在线观看| 日韩成人在线看| 国产精品一线| 国内自拍视频一区二区三区| 亚洲精品福利电影| 桃色一区二区| 精品一区免费| 爽爽淫人综合网网站| 亚洲精品四区| 国产欧美自拍一区| 国产中文欧美日韩在线| 亚洲www啪成人一区二区| 国产一区久久| 亚洲一二三区视频| 欧美日韩伊人| 国产精品久久久网站| 精品三级av在线导航| 91一区二区| 免费观看不卡av| 另类国产ts人妖高潮视频| 日韩高清不卡在线| 久久精品网址| 婷婷丁香综合| 亚洲日本免费电影| 国产精品伊人| 在线观看精品| 蜜桃av一区| 国产精品男女| 蜜桃av在线播放| 狠狠色狠狠色综合日日tαg| 99热精品在线观看| 日韩av一级片| 手机在线电影一区| 国产一级久久| 国产精品色婷婷在线观看| 久久久一本精品| 亚洲精品动态| 岛国av在线播放| 久久国产精品久久久久久电车| 青青草精品视频| 亚洲一级少妇| 日本在线不卡视频一二三区| 捆绑调教美女网站视频一区| 欧美在线观看视频一区| 青青青国产精品| 日本不卡免费高清视频在线| 性色av一区二区怡红| 国产精品啊v在线| 亚洲手机视频| 国产激情一区| 中文亚洲免费| 日韩a一区二区| 亚洲精品少妇| 久久久蜜桃一区二区人| 国产亚洲精品精品国产亚洲综合| 久久精品成人| 国产精品亚洲四区在线观看| 国产在线日韩| 国内在线观看一区二区三区| 亚洲精品免费观看| 久久久人人人| 国产精品hd| 日韩国产在线观看| 国产在线日韩| 97精品一区二区| 国产探花在线精品一区二区| 99国产精品久久久久久久成人热 | 国产欧美69| 日韩中文欧美在线| 久久国产中文字幕| 精品国内亚洲2022精品成人| 久久国产高清| 视频二区不卡| 欧美一区精品| 国产午夜久久| 久久精品91| 久久精品国产亚洲一区二区三区| 午夜亚洲精品| 91精品国产调教在线观看| 欧美aⅴ一区二区三区视频| 在线观看一区| 在线成人直播| 亚洲91视频| 国产91在线播放精品| 国产日韩一区| 婷婷视频一区二区三区| 视频一区二区三区中文字幕| 久久久人人人| 久久精品理论片| 国产精品一区二区三区av| 亚洲精选91| 午夜电影亚洲| 九一国产精品| 999久久久91| 日韩在线视频精品| 日本欧美国产| 97视频热人人精品免费| 精品中文字幕一区二区三区四区| 国产日韩欧美在线播放不卡| 日韩av一区二区在线影视| 日韩综合一区二区三区| 亚洲精品三级|