Показать сообщение отдельно
Старый 08.03.2011, 15:13   #15
ant2on
Модератор
 
Аватар для ant2on
 
Регистрация: 05.11.2005
Сообщений: 161
Написано 63 полезных сообщений
(для 182 пользователей)
Ответ: Непропорцональность разрешений

Вот доработанная функция. Добавлены черные полоски по бокам, например, для ноутбуков.

Graphics3D 1280,800,32,2
SetBuffer BackBuffer()

setProporcialViewport(1024,768)

camera=CreateCamera()
PositionEntity camera,0,0,-3
;привет, nuprahtor!
CameraClsColor camera,0,0,255

cub=CreateCube()

While Not KeyDown(1)
    TurnEntity cub,0,1,0
    RenderWorld
    Flip 
Wend


Function setProporcialViewport(width%,height%)
    
	k# =  Float(width)/Float(height) 
	
	kr# = Float(GraphicsWidth())/Float(GraphicsHeight())
	
	If k = kr Then Return
    
	If k > kr Then 
		vw=GraphicsWidth()
		vh=vw/k
		Viewport 0,(GraphicsHeight()-vh) Shr 1,vw,vh
	Else
		vh=GraphicsHeight()
		vw=vh*k
		Viewport (GraphicsWidth()-vw) Shr 1,0,vw,vh
	EndIf
End Function
__________________
Anarki's Revenge
(Offline)
 
Ответить с цитированием