团菊纹始见于隋代临汝窑,一种团菊中心无花蕊;一种团菊中心为一圆圈,内印作坊主或工匠姓氏。桃花纹常见于明清瓷绘,常用来衬托少女之美,也有配以水波纹的,称为“落花流水”纹。皮球花在清代叫绣球花,是以大小不等的花头作圆形或椭圆形的适合构成,疏密均匀地适合在器物的装饰带中,一般纹样以外的空间大于纹样的比例,对器型适应性强。折枝花纹是在器物的显著部位装饰一枝折下的花卉,与周围纹样无连接关系,多为均衡的形式出现。自元代以来应用很广,如折枝牡丹、折枝梅、折枝桃等纹样。《岁寒三友图》指的是松、竹、梅三种植物,是国画中常见的题材,宋以后常被装饰在器物上。兴于乾隆时的满花纹,俗称“万花”,是在器物的装饰面上满画花朵,形状不一,繁密堆叠,有如万花汇集。
'补模块3文件。一个放不下。
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' 渲染子程序,将新的帧数据渲染到 lpDIBitsRender 中
' 算法:
' posx = Wave1(x-1,y)-Wave1(x+1,y)+x
' posy = Wave1(x,y-1)-Wave1(x,y+1)+y
' SourceBmp(x,y) = DestBmp(posx,posy)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Public Sub WaveRender(lpWaveObject As WAVE_OBJECT)
Dim dwPosX As Long, dwPosY As Long, dwPtrSource As Long, dwPtrDest As Long, dwFlag As Long
Dim lpWave1 As Long, LineIdx As Long, LinePtr As Long
Dim lpDIBitsSource As Long, lpDIBitsRender As Long
Dim I As Long, J As Long
dwFlag = 0
With lpWaveObject
'DebugPrint "WaveRender " & dwFlag
If (dwFlag And F_WO_ACTIVE) = 0 Then Exit Sub
dwFlag = dwFlag Or F_WO_NEED_UPDATE
lpWave1 = lpWave1
LineIdx = dwWaveByteWidth '像素指针
For I = 1 To dwBmpHeight - 2
For J = 0 To dwBmpWidth - 1
'
' PosY=i+像素上1能量-像素下1能量
' PosX=j+像素左1能量-像素右1能量
'
'LineIdx = LineIdx - dwWaveByteWidth
LinePtr = lpWave1 + LineIdx - dwWaveByteWidth
pLongPtr(0) = LinePtr
dwPosY = pLong(0)
LinePtr = lpWave1 + LineIdx + dwWaveByteWidth
pLongPtr(0) = LinePtr
dwPosY = dwPosY - pLong(0) + I
LinePtr = lpWave1 + LineIdx - 4
pLongPtr(0) = LinePtr
dwPosX = pLong(0)
LinePtr = lpWave1 + LineIdx + 4
pLongPtr(0) = LinePtr
dwPosX = dwPosX - pLong(0) + J
If dwPosX < 0 Or dwPosY < 0 Then GoTo Continue
If dwPosX >= dwBmpWidth Or dwPosY >= dwBmpHeight Then GoTo Continue
'
' ptrSource = dwPosY dwDIByteWidth + dwPosX 3
' ptrDest = i dwDIByteWidth + j 3
'
'dwPtrSource = dwPosY dwDIByteWidth + (dwPosX + dwPosX 2)
dwPosX = dwPosX + dwPosX 2 'dwPosX 3
dwPtrSource = dwPosY dwDIByteWidth + dwPosX
dwPtrDest = I dwDIByteWidth + (J + J 2) 'dwPtrDest = I dwDIByteWidth + J 3
'
' 渲染像素 [ptrDest] = 原始像素 [ptrSource]
'
lpDIBitsSource = lpDIBitsSource + dwPtrSource
lpDIBitsRender = lpDIBitsRender + dwPtrDest
If dwPtrSource <> dwPtrDest Then
dwFlag = dwFlag Or 1 '如果存在源像素和目标像素不同,则表示还在活动状态
' DebugPrint dwPtrSource & " SR " & dwPtrDest
'CopyMemory ByVal lpDIBitsRender, ByVal lpDIBitsSource, 3
Call WaveGetPixel(lpDIBitsSource, lpDIBitsRender, dwDIByteWidth)
Else
CopyMemory ByVal lpDIBitsRender, ByVal lpDIBitsSource, 3
End If
'
' 继续循环
'
Continue:
LineIdx = LineIdx + 4 '像素++ '指针4个字节
Next 'J
Next 'I
SetDIBits hDcRender, hBmpRender, 0, dwBmpHeight, lpDIBitsRender, stBmpInfo, DIB_RGB_COLORS
If dwFlag = 0 Then dwFlag = dwFlag And (Not F_WO_ACTIVE)
'DebugPrint "WaveRender " & dwFlag
End With
End Sub
Public Sub WaveUpdateFrame(lpWaveObject As WAVE_OBJECT, ByVal hdc As Long, bIfForce As Boolean)
'Dim ret As Long
With lpWaveObject
If bIfForce = True Then GoTo labUpdate
If (dwFlag And F_WO_NEED_UPDATE) Then
'ret = SetDIBitsToDevice(hDcRender, 0, 0, dwBmpWidth, dwBmpHeight, 0, 0, 0, dwBmpHeight, lpDIBitsRender, stBmpInfo, DIB_RGB_COLORS)
'ret = SetDIBits(hDcRender, hBmpRender, 0, dwBmpHeight, lpDIBitsRender, stBmpInfo, DIB_RGB_COLORS)
'SetDIBits hDcRender, hBmpRender, 0, dwBmpHeight, lpDIBitsRender, stBmpInfo, DIB_RGB_COLORS
labUpdate:
BitBlt hdc, 0, 0, dwBmpWidth, dwBmpHeight, hDcRender, 0, 0, SRCCOPY
dwFlag = dwFlag And (Not F_WO_NEED_UPDATE)
End If
End With
End Sub
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' 扔一块石头
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Public Sub WaveDropStone(lpWaveObject As WAVE_OBJECT, ByVal dwPosX As Long, ByVal dwPosY As Long, ByVal dwStoneSize As Long, ByVal dwStoneWeight As Long)
Dim dwSize As Long
Dim dwX1 As Long, dwX2 As Long
Dim dwY1 As Long, dwY2 As Long, dwY3 As Long
'Dim dwMaxX As Long, dwMaxY As Long
Dim LinePtr As Long
With lpWaveObject
'DebugPrint "WaveDropStone " & dwFlag
'
' 计算范围
'
dwSize = dwStoneSize \ &H2 '2 ^ 1
dwX1 = dwPosX + dwSize
dwX2 = dwPosX - dwSize
If (dwFlag And F_WO_ELLIPSE) Then dwSize = dwSize \ &H2 ' 2 ^ 1
dwY1 = dwPosY + dwSize
dwY2 = dwPosY - dwSize
dwSize = dwStoneSize
If dwSize = 0 Then dwSize = dwSize + 1
'
' 判断范围的合法性
'
If dwX1 + 1 >= dwBmpWidth Or dwX2 < 1 Or dwY1 + 1 >= dwBmpHeight Or dwY2 < 1 Then Exit Sub
'
' 将范围内的点的能量置为 dwStoneWeight
'
While dwX2 <= dwX1
dwY3 = dwY2
While dwY3 <= dwY1
'(x-x0)^2+(y-y0)^2<=r^2 就在圆内
If (dwX2 - dwPosX) (dwX2 - dwPosX) + (dwY3 - dwPosY) (dwY3 - dwPosY) <= dwSize dwSize Then
LinePtr = lpWave1 + (dwY3 dwBmpWidth + dwX2) &H4 '2 ^ 2
pLongPtr(0) = LinePtr
pLong(0) = dwStoneWeight
End If
dwY3 = dwY3 + 1
Wend
dwX2 = dwX2 + 1
Wend
dwFlag = dwFlag Or F_WO_ACTIVE
End With
End Sub
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' 计算扩散数据、渲染位图、更新窗口、处理特效的定时器过程
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Public Sub WaveTimerProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
Dim hdc As Long
Dim dwPosX As Long, dwPosY As Long, dwSize As Long, dwWeight As Long
Dim lpWaveObj As Long
'建立模拟指针
Dim pWAVE_OBJECT() As WAVE_OBJECT
Dim pWAVE_OBJECTPtr() As Long
Dim SApWAVE_OBJECT As SAFEARRAY1D
Dim SApWAVE_OBJECTPtr As SAFEARRAY1D
With SApWAVE_OBJECT
cDims = 1
fFeatures = 0
cbElements = 1
cLocks = 0
pvData = 0
Bounds(0)lLbound = 0
Bounds(0)cElements = 1
End With
With SApWAVE_OBJECTPtr
cDims = 1
fFeatures = 0
cbElements = 4
cLocks = 0
pvData = VarPtr(SApWAVE_OBJECTpvData)
Bounds(0)lLbound = 0
Bounds(0)cElements = 1
End With
CopyMemory ByVal VarPtrArray(pWAVE_OBJECT), VarPtr(SApWAVE_OBJECT), 4
CopyMemory ByVal VarPtrArray(pWAVE_OBJECTPtr), VarPtr(SApWAVE_OBJECTPtr), 4
lpWaveObj = idEvent
pWAVE_OBJECTPtr(0) = lpWaveObj
'DebugPrint "WaveTimerProc " & pWAVE_OBJECT(0)dwFlag
Call WaveSpread(pWAVE_OBJECT(0))
Call WaveRender(pWAVE_OBJECT(0))
With pWAVE_OBJECT(0)
If (dwFlag And F_WO_NEED_UPDATE) Then
hdc = GetDC(hWnd)
Call WaveUpdateFrame(pWAVE_OBJECT(0), hdc, False)
Call ReleaseDC(hWnd, hdc)
End If
'
' 特效处理
'
If (dwFlag And F_WO_EFFECT) = 0 Then Exit Sub
Select Case dwEffectType
'
' Type = 1 雨点,Param1=速度(0最快,越大越慢),Param2=雨点大小,Param3=能量
'
Case 1
'Dim ret As Long
If dwEffectParam1 > 0 Then Call WaveRandom(pWAVE_OBJECT(0), dwEffectParam1) 'ret = WaveRandom(pWAVE_OBJECT(0), dwEffectParam1)
'If ret = 0 Then
dwPosX = WaveRandom(pWAVE_OBJECT(0), dwBmpWidth - 2) + 1
dwPosY = WaveRandom(pWAVE_OBJECT(0), dwBmpHeight - 2) + 1
dwSize = WaveRandom(pWAVE_OBJECT(0), dwEffectParam2) + 1
dwWeight = WaveRandom(pWAVE_OBJECT(0), dwEffectParam3) + 50
Call WaveDropStone(pWAVE_OBJECT(0), dwPosX, dwPosY, dwSize, dwWeight)
'End If
'
' Type = 2 行船,Param1=速度(0最快,越大越快),Param2=大小,Param3=能量
'
Case 2
dwEff2Flip = dwEff2Flip + 1
If (dwEff2Flip And 1) <> 0 Then Exit Sub
dwPosX = dwEff2X + dwEff2XAdd
dwPosY = dwEff2Y + dwEff2YAdd
If dwPosX < 1 Then
dwPosX = -(dwPosX - 1)
dwEff2XAdd = -dwEff2XAdd
End If
If dwPosY < 1 Then
dwPosY = -(dwPosY - 1)
dwEff2YAdd = -dwEff2YAdd
End If
If dwPosX > dwBmpWidth - 1 Then
dwPosX = (dwBmpWidth - 1) - (dwPosX - (dwBmpWidth - 1)) '(dwBmpWidth - 1)2 -dwPosX
dwEff2XAdd = -dwEff2XAdd
End If
If dwPosY > dwBmpHeight - 1 Then
dwPosY = (dwBmpHeight - 1) - (dwPosY - (dwBmpHeight - 1)) '(dwBmpHeight-1)2-dwPosY
dwEff2YAdd = -dwEff2YAdd
End If
dwEff2X = dwPosX
dwEff2Y = dwPosY
Call WaveDropStone(pWAVE_OBJECT(0), dwPosX, dwPosY, dwEffectParam2, dwEffectParam3)
'
' Type = 3 波浪,Param1=密度,Param2=大小,Param3=能量
'
Case 3
Dim I As Long
For I = 0 To dwEffectParam1
dwPosX = WaveRandom(pWAVE_OBJECT(0), dwBmpWidth - 2) + 1
dwPosY = WaveRandom(pWAVE_OBJECT(0), dwBmpHeight - 2) + 1
dwSize = WaveRandom(pWAVE_OBJECT(0), dwEffectParam2) + 1
dwWeight = WaveRandom(pWAVE_OBJECT(0), dwEffectParam3)
Call WaveDropStone(pWAVE_OBJECT(0), dwPosX, dwPosY, dwSize, dwWeight)
Next
End Select
End With
'取消模拟指针
CopyMemory ByVal VarPtrArray(pWAVE_OBJECT), 0&, 4
CopyMemory ByVal VarPtrArray(pWAVE_OBJECTPtr), 0&, 4
End Sub
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'释放对象
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Public Sub WaveFree(lpWaveObject As WAVE_OBJECT)
With lpWaveObject
If hDcRender > 0 Then DeleteDC (hDcRender)
If hBmpRender > 0 Then DeleteObject hBmpRender
If lpDIBitsSource > 0 Then GlobalFree lpDIBitsSource
If lpDIBitsRender > 0 Then GlobalFree lpDIBitsRender
If lpWave1 > 0 Then GlobalFree lpWave1
If lpWave2 > 0 Then GlobalFree lpWave2
KillTimer hWnd, VarPtr(lpWaveObject)
ZeroMemory ByVal VarPtr(lpWaveObject), Len(lpWaveObject)
'-----------------------------------------------------------
'取消模拟指针
CopyMemory ByVal VarPtrArray(pLong), 0&, 4
CopyMemory ByVal VarPtrArray(pLongPtr), 0&, 4
'-----------------------------------------------------------------
'取消模拟指针
CopyMemory ByVal VarPtrArray(pByte), 0&, 4
CopyMemory ByVal VarPtrArray(pBytePtr), 0&, 4
'-----------------------------------------------------------
End With
End Sub
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' 初始化对象
' 参数:_lpWaveObject = 指向 WAVE_OBJECT结构体
' 返回:0 成功、 1 失败
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Public Function WaveInit(lpWaveObject As WAVE_OBJECT, ByVal hWnd As Long, ByVal hBmp As Long, ByVal dwSpeed As Long, ByVal dwType As WaveType) As Long
Dim stBmp As BITMAP
Dim dwReturn As Long
Dim ret As Long
Dim hdc As Long
Dim hMDC As Long
'-----------------------------------------------------------------
'建立模拟指针
With SApLong
cDims = 1
fFeatures = 0
cbElements = 1
cLocks = 0
pvData = 0
Bounds(0)lLbound = 0
Bounds(0)cElements = 1
End With
With SApLongPtr
cDims = 1
fFeatures = 0
cbElements = 4
cLocks = 0
pvData = VarPtr(SApLongpvData)
Bounds(0)lLbound = 0
Bounds(0)cElements = 1
End With
CopyMemory ByVal VarPtrArray(pLong), VarPtr(SApLong), 4
CopyMemory ByVal VarPtrArray(pLongPtr), VarPtr(SApLongPtr), 4
'-----------------------------------------------------------------
'建立模拟指针
With SApByte
cDims = 1
fFeatures = 0
cbElements = 1
cLocks = 0
pvData = 0
Bounds(0)lLbound = 0
Bounds(0)cElements = 3
End With
With SApBytePtr
cDims = 1
fFeatures = 0
cbElements = 4
cLocks = 0
pvData = VarPtr(SApBytepvData)
Bounds(0)lLbound = 0
Bounds(0)cElements = 1
End With
CopyMemory ByVal VarPtrArray(pByte), VarPtr(SApByte), 4
CopyMemory ByVal VarPtrArray(pBytePtr), VarPtr(SApBytePtr), 4
'-----------------------------------------------------------------
dwReturn = 0
ZeroMemory ByVal VarPtr(lpWaveObject), Len(lpWaveObject)
'ZeroMemory lpWaveObject, &H84 ' Len(WAVE_OBJECT)
With lpWaveObject
If dwType = sEllipse Then
dwFlag = dwFlag Or F_WO_ELLIPSE
End If
'
' 获取位图尺寸
'
hWnd = hWnd
dwRandom = GetTickCount()
ret = GetObject(hBmp, Len(stBmp), stBmp)
If ret = 0 Then
dwReturn = 1
GoTo result
End If
dwBmpHeight = stBmpbmHeight
'if lpWaveObjectdwBmpHeight < 3 then dwReturn = 1:GoTo result
dwBmpWidth = stBmpbmWidth
'if lpWaveObjectdwBmpWidth < 3 then dwReturn = 1:GoTo result
dwWaveByteWidth = stBmpbmWidth &H4 '2 ^ 2 'dwBmpWidth 4
dwDIByteWidth = (stBmpbmWidth + stBmpbmWidth 2 + 3) And (Not &H3&) '(dwBmpWidth 3 + 3) and ~3 ' ((W 3& + 3&) And (Not 3&))
'
' 创建用于渲染的位图
'
hdc = GetDC(hWnd)
hDcRender = CreateCompatibleDC(hdc)
hBmpRender = CreateCompatibleBitmap(hdc, dwBmpWidth, dwBmpHeight)
'MsgBox hBmpRender
SelectObject hDcRender, hBmpRender
'
' 分配波能缓冲区
'
lpWave1 = GlobalAlloc(GPTR, dwWaveByteWidth dwBmpHeight)
lpWave2 = GlobalAlloc(GPTR, dwWaveByteWidth dwBmpHeight)
'
' 分配像素缓冲区
'
lpDIBitsSource = GlobalAlloc(GPTR, dwDIByteWidth dwBmpHeight)
lpDIBitsRender = GlobalAlloc(GPTR, dwDIByteWidth dwBmpHeight)
'
' 获取原始像素数据
'
'With stBmpInfobmiHeader
stBmpInfobmiHeaderbiSize = Len(stBmpInfobmiHeader) ' &H28 'len(BITMAPINFOHEADER)
stBmpInfobmiHeaderbiWidth = dwBmpWidth
stBmpInfobmiHeaderbiHeight = -dwBmpHeight '- dwBmpHeight
stBmpInfobmiHeaderbiPlanes = 1
stBmpInfobmiHeaderbiBitCount = 24
stBmpInfobmiHeaderbiCompression = BI_RGB
stBmpInfobmiHeaderbiSizeImage = 0
'End With
hMDC = CreateCompatibleDC(hdc)
SelectObject hMDC, hBmp
ReleaseDC hWnd, hdc
GetDIBits hMDC, hBmp, 0, dwBmpHeight, lpDIBitsSource, stBmpInfo, DIB_RGB_COLORS
GetDIBits hMDC, hBmp, 0, dwBmpHeight, lpDIBitsRender, stBmpInfo, DIB_RGB_COLORS
DeleteDC hMDC
If lpWave1 = 0 Or lpWave2 = 0 Or lpDIBitsSource = 0 Or lpDIBitsRender = 0 Or hDcRender = 0 Then
WaveFree lpWaveObject
dwReturn = 1
End If
'DebugPrint "WaveInit " & dwFlag
SetTimer hWnd, ByVal VarPtr(lpWaveObject), dwSpeed, AddressOf WaveTimerProc
dwFlag = dwFlag Or F_WO_ACTIVE Or F_WO_NEED_UPDATE
'DebugPrint "WaveInit " & dwFlag
WaveRender lpWaveObject
hdc = GetDC(hWnd)
WaveUpdateFrame lpWaveObject, hdc, True
ReleaseDC hWnd, hdc
End With
'
result:
WaveInit = dwReturn
End Function
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' 一些特效
' 输入:dwType = 0 关闭特效
' dwType <> 0 开启特效,参数具体见上面
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Public Sub WaveEffect(lpWaveObject As WAVE_OBJECT, ByVal dwEffectType As WaveEffectType, ByVal dwParam1 As Long, ByVal dwParam2 As Long, ByVal dwParam3 As Long)
Dim dwMaxX As Long, dwMaxY As Long
With lpWaveObject
' DebugPrint "WaveEffect " & dwFlag
Select Case dwEffectType
Case wClose '关闭特效
dwFlag = dwFlag And (Not F_WO_EFFECT)
dwEffectType = dwEffectType
Exit Sub
'Case wrain '下雨
Case wLaunch '汽艇
dwEff2XAdd = dwParam1
dwEff2YAdd = dwParam1
dwEff2X = WaveRandom(lpWaveObject, dwBmpWidth - 2) + 1
dwEff2Y = WaveRandom(lpWaveObject, dwBmpHeight - 2) + 1
' dwEffectType = dwEffectType
' dwEffectParam1 = dwParam1
' dwEffectParam2 = dwParam2
' dwEffectParam3 = dwParam3
' dwFlag = dwFlag Or F_WO_EFFECT
'Case wWaves '风浪
'Case Else '默认
End Select
dwEffectType = dwEffectType
dwEffectParam1 = dwParam1
dwEffectParam2 = dwParam2
dwEffectParam3 = dwParam3
dwFlag = dwFlag Or F_WO_EFFECT
End With
End Sub
完
http://downteachercncom/Kj/Wlkj/Gzwlkj/2006/200612179681html
1、水波属于什么波?
高忠明(06级博士生):“横波一般只能在固体中传播,不能在液体和气体中传播;而纵波既可以在固体中传播也可在液体和气体中传播。水是液体,由于表面张力,故也可以传播横波。水波(表面波)是比较复杂的机械波,其中既有横波,又有纵波,在中学物理中通常把水波视为横波,这是将水波简化了的缘故。横波是由于拉伸而产生的,而纵波是由于挤压而产生的。那么水面上为什么可以传播横波呢这就是由于水表面张力的缘故,由于有表面张力,因此在振动幅度不太大的情况下,水面也可承受微小拉伸,从而会产生横波;同时振动在水面传播的过程中也会有挤压,于是也就能形成纵波。由此可见,严格地说水波应该是横波和纵波的复合波。
余丽君(04级硕士生):书上的答案是:纵向横向振动混合而成的混合波。
高忠明(06级博士生):可以合成,这里指的是水面上的波,不涉及水面下的波,相当于互相垂直方向上的两个波的合成。
杜明荣(05级博士生):水面波和深水波是由于圆、椭圆形态的不同而形成的,多数情况下是混合而成的。潜水为横波,深水为纵波。但是在中学教学中不要搞得太复杂,这些问题提出来学生很容易混淆,不提为好。
(三)牛顿理论中的波动性思想
他提出:“扔一石头到平静的水面中,由此激起的水波将在石头落水的地方持续一段时间,并从这里以同心圆的形式在水面上向远处传播.空气用力撞击所激起的振动和颤动也将持续少许时间,并从撞击处以同心球的形式传播到远方,
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)