本文整理汇总了Java中gov.nasa.worldwind.view.orbit.OrbitView.setPitch方法的典型用法代码示例。如果您正苦于以下问题:Java OrbitView.setPitch方法的具体用法?Java OrbitView.setPitch怎么用?Java OrbitView.setPitch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gov.nasa.worldwind.view.orbit.OrbitView
的用法示例。
在下文中一共展示了OrbitView.setPitch方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: setupFirstPersonView
import gov.nasa.worldwind.view.orbit.OrbitView; //导入方法依赖的package包/类
/**
* Setup the view to a first person mode (zoom = 0)
*
* @param view the orbit view to set into a first person view.
*/
protected void setupFirstPersonView(OrbitView view)
{
if (view.getZoom() == 0) // already in first person mode
return;
Vec4 eyePoint = view.getEyePoint();
// Center pos at eye pos
Position centerPosition = wwd.getModel().getGlobe().computePositionFromPoint(eyePoint);
// Compute pitch and heading relative to center position
Vec4 normal = wwd.getModel().getGlobe().computeSurfaceNormalAtLocation(centerPosition.getLatitude(),
centerPosition.getLongitude());
Vec4 north = wwd.getModel().getGlobe().computeNorthPointingTangentAtLocation(centerPosition.getLatitude(),
centerPosition.getLongitude());
// Pitch
view.setPitch(Angle.POS180.subtract(view.getForwardVector().angleBetween3(normal)));
// Heading
Vec4 perpendicular = view.getForwardVector().perpendicularTo3(normal);
Angle heading = perpendicular.angleBetween3(north);
double direction = Math.signum(-normal.cross3(north).dot3(perpendicular));
view.setHeading(heading.multiply(direction));
// Zoom
view.setZoom(0);
// Center pos
view.setCenterPosition(centerPosition);
}
示例2: resetOrbitView
import gov.nasa.worldwind.view.orbit.OrbitView; //导入方法依赖的package包/类
/**
* Reset the view to an orbit view state if in first person mode (zoom = 0)
*
* @param view the orbit view to reset
*/
protected void resetOrbitView(OrbitView view)
{
if (view.getZoom() > 0) // already in orbit view mode
return;
// Find out where on the terrain the eye is looking at in the viewport center
// TODO: if no terrain is found in the viewport center, iterate toward viewport bottom until it is found
Vec4 centerPoint = computeSurfacePoint(view, view.getHeading(), view.getPitch());
// Reset the orbit view center point heading, pitch and zoom
if (centerPoint != null)
{
Vec4 eyePoint = view.getEyePoint();
// Center pos on terrain surface
Position centerPosition = wwd.getModel().getGlobe().computePositionFromPoint(centerPoint);
// Compute pitch and heading relative to center position
Vec4 normal = wwd.getModel().getGlobe().computeSurfaceNormalAtLocation(centerPosition.getLatitude(),
centerPosition.getLongitude());
Vec4 north = wwd.getModel().getGlobe().computeNorthPointingTangentAtLocation(centerPosition.getLatitude(),
centerPosition.getLongitude());
// Pitch
view.setPitch(Angle.POS180.subtract(view.getForwardVector().angleBetween3(normal)));
// Heading
Vec4 perpendicular = view.getForwardVector().perpendicularTo3(normal);
Angle heading = perpendicular.angleBetween3(north);
double direction = Math.signum(-normal.cross3(north).dot3(perpendicular));
view.setHeading(heading.multiply(direction));
// Zoom
view.setZoom(eyePoint.distanceTo3(centerPoint));
// Center pos
view.setCenterPosition(centerPosition);
}
}