WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   automatic scaling (https://forum.worldviz.com/showthread.php?t=4262)

rlh001 06-10-2012 07:35 AM

automatic scaling
 
I am applying a picture to a textQuad. When I click the window to full screen the picture distorts. I would like to find a way to have the picture retain the same aspect ratio regardless of window size. Thanks

farshizzo 06-11-2012 05:10 PM

Can you post the code you are using to create the tex quad?

rlh001 06-13-2012 05:25 AM

The Vizard window opens at 800 x 600 pixels and the image looks proportioned properly. When I Maximize the window the image is distorted unless I change the scaling with the code below, but then it distorts the image when the window is not maximized. I need to have the image appear undistorted regardless of window sizing. Thanks

##Add Instrument Cluster Image to Screen
clusterTex = viz.addTexture('resources\ClusterGraphics.png')
clusterQuad = viz.addTexQuad(viz.SCREEN)
clusterQuad.texture(clusterTex)
# Increase size of image
clusterScale = 2.75
#Modify Aspect ratio to look correct when changed to full screen
clusterAspectRatio= 1.75 # full screen 1280:800
clusterQuad.setScale(clusterScale * clusterAspectRatio, clusterScale )

farshizzo 06-14-2012 12:34 PM

Add the quad to viz.ORTHO instead of viz.SCREEN. Objects added to viz.ORTHO will maintain the same pixel size and aspect ratio, regardless of the window size. The scale and position of the object will need to be specified in pixels though.
Code:

clusterTex = viz.addTexture('resources\ClusterGraphics.png')
clusterQuad = viz.addTexQuad(parent=viz.ORTHO)
clusterQuad.texture(clusterTex)

# Set size of quad to size of texture
clusterQuad.setScale(clusterTex.getSize())


rlh001 06-17-2012 04:39 AM

Thanks for the tip. I changed the image to ortho and it looks good. However, since clusterQuad.setPosition is now specified in pixels if I set it up to be in the center of the screen and then run it on a different size display it is no longer in the center. I need to be able to specify position in fraction of widow size.


clusterTex = viz.addTexture('resources\ClusterGraphics.png')
clusterQuad = viz.addTexQuad(parent=viz.ORTHO, size = .5)
clusterQuad.texture(clusterTex)
clusterQuad.setScale(clusterTex.getSize())
clusterQuad.setPosition(640,84)

farshizzo 06-18-2012 09:31 AM

You can use the following code to link the quad to the center of the main window:
Code:

viz.link(viz.MainWindow.CenterCenter,clusterQuad)


All times are GMT -7. The time now is 12:56 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC