Тема: RPM
Показать сообщение отдельно
Старый 17.03.2010, 11:34   #7
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: RPM

пример с текстурными координатами.
Graphics3D 800, 600, 32, 2

Local tex_tablo = CreateTexture(256,256, 16+32)
SetBuffer TextureBuffer(tex_tablo)
    ClsColor 0,0,0
    Cls
    Color 0, 255, 0
    Oval 10, 10, 236, 236, 1
SetBuffer BackBuffer()

Local mesh_tahometr = CreateQuad(2,2)
Local surf = GetSurface(mesh_tahometr, 1)
EntityTexture mesh_tahometr, tex_tablo, 0, 1

Local cam = CreateCamera()
MoveEntity cam, 0, 0, -4
CameraClsColor cam, 100,100,100

Local ANGLE
While KeyDown(1)=0
    
    ANGLE = ANGLE + KeyDown(200) - KeyDown(208)
    
    For n = 0 To CountVertices(surf)
        Select n
            ; Bottom Left
            Case 0 : VertexTexCoords surf, n, 0.25-Sin(ANGLE)*0.25, Cos(ANGLE)*0.25+0.25
            ; top left
            Case 1 : VertexTexCoords surf, n, 0.25-Sin(ANGLE)*0.25, Cos(ANGLE)*0.25+0.75
            ; top right
            Case 2 : VertexTexCoords surf, n, 0.75-Sin(ANGLE)*0.25, Cos(ANGLE)*0.25+0.75
            ; Bottom right
            Case 3 : VertexTexCoords surf, n, 0.75-Sin(ANGLE)*0.25, Cos(ANGLE)*0.25+0.25
        End Select
    Next
    
    RenderWorld()
    
    Text 10, 10, "Arrows top/bottom"
    Text 10, 30, "Angle "+ANGLE
    
    Flip
Wend

End

Function CreateQuad(XSize#=1,ZSize#=1,Brush=0) 
    Local Surf
    Local Mesh=CreateMesh()
    If Brush>0 Then
        Surf=CreateSurface(Mesh,Brush)
    Else
        Surf=CreateSurface(Mesh)
    End If
    Local t=AddVertex (Surf,0,0,0,0,1)
    AddVertex (Surf,0,ZSize,0,0,0)
    AddVertex (Surf,XSize,ZSize,0,1,0)
    AddVertex (Surf,XSize,0,0,1,1)
    AddTriangle Surf,t,t+2,t+3
    AddTriangle Surf,t,t+1,t+2
    Return Mesh
End Function
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
m_512 (17.03.2010), St_AnGer (17.03.2010)