Показать сообщение отдельно
Старый 15.11.2010, 21:12   #1164
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от Ganociy Посмотреть сообщение
LLI.T.A.L.K.E.R. , ты это с моей пушкой это сделал? Если да, то как ты изменил лево на право
Вообще-от я это в Painte сделал

Вот функция выворачивания модели с лева на право и наоборот:
Function mirror_mesh(mesh,plane,surface 0)


        If 
plane Or plane 2 Then Return 0

        
If surface 0 Then
                s_count 
CountSurfaces(mesh)
                
l_count 1
        
Else
                For 
loop 0 To CountSurfaces(mesh)
                        
temp GetSurface(mesh,loop)
                        If 
surface temp Then
                                s_count 
temp
                                l_count 
temp
                        End 
If
                
Next
        End 
If
       
        
average_x# = EntityX(mesh) - (MeshWidth(mesh)/2.0)
        
average_y# = EntityY(mesh) - (MeshHeight(mesh)/2.0)
        
average_z# = EntityZ(mesh) - (MeshDepth(mesh)/2.0)


        
If plane 0 Then
                
For sloop l_count To s_count
                        surface 
GetSurface(mesh,sloop)
                        For 
loop 0 To CountVertices(surface) - 1

                                ny
# = VertexNY (surface,loop)
                                
nz# = VertexNZ (surface,loop)
                                
nx# = VertexNX (surface,loop)
                                
VertexCoords surface,loopaverage_x - ( average_x VertexX(surface,loop)), VertexY(surface,loop), VertexZ(surface,loop)
                                
VertexNormal surface,loop,nx,ny,-nz
                        Next
                Next
        
ElseIf plane 1 Then
                
For sloop l_count To s_count
                        surface 
GetSurface(mesh,sloop)
                        For 
loop 0 To CountVertices(surface) - 1

                                ny
# = VertexNY (surface,loop)
                                
nz# = VertexNZ (surface,loop)
                                
nx# = VertexNX (surface,loop)

                                
VertexCoords surface,loopVertexX(surface,loop), average_y - ( average_y VertexY(surface,loop)), VertexZ(surface,loop)
                                
VertexNormal surface,loop,-nx,ny,-nz
                        Next
                Next
        
ElseIf plane 2 Then
                
For sloop l_count To s_count
                        surface 
GetSurface(mesh,sloop)
                        For 
loop 0 To CountVertices(surface) - 1

                                ny
# = VertexNY (surface,loop)
                                
nz# = VertexNZ (surface,loop)
                                
nx# = VertexNX (surface,loop)

                                
VertexCoords surface,loopVertexX(surface,loop), VertexY(surface,loop),  average_z - ( average_z VertexZ(surface,loop))
                                
VertexNormal surface,loop,-nx,ny,nz
                        Next
                Next
        End 
If
End Function 


Использовать так:

mirror_mesh(Pulemet,2) ; использование функции на модель Pulemetпо оси "не охота понимать по какой" но слева на право (и наоборот)
оси такие0 1 2 разбирать визуально по каким осям
FlipMesh Pulemet 
инвертирование отображения трианглов модели (мне это пригодилосьтак как модель "односторонняя"
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Arles (15.11.2010)