java getscale_Java PAffineTransform.getScaleX方法代码示例

import edu.umd.cs.piccolo.util.PAffineTransform; //导入方法依赖的package包/类

/**

* We do the same thing we did in getViewPosition above to flip the

* document-window position relationship

*

* @param x The new x position

* @param y The new y position

*/

public void setViewPosition(final double x, final double y) {

if (camera == null)

return;

// If a scroll is in progress - we ignore new scrolls - if we

// didn't, since the scrollbars depend on the camera

// location we can end up with an infinite loop

if (scrollInProgress)

return;

scrollInProgress = true;

// Get the union of all the layers' bounds

final PBounds layerBounds = new PBounds();

final java.util.List layers = camera.getLayersReference();

for (final Iterator i = layers.iterator(); i.hasNext();) {

final PLayer layer = (PLayer) i.next();

layerBounds.add(layer.getFullBoundsReference());

}

final PAffineTransform at = camera.getViewTransform();

at.transform(layerBounds, layerBounds);

// Union the camera view bounds

final PBounds viewBounds = camera.getBoundsReference();

layerBounds.add(viewBounds);

// Now find the new view position in view coordinates -

// This is basically the distance from the lower right

// corner of the window to the upper left corner of the

// document. We then measure the offset from the lower right corner

// of the document

final Point2D newPoint = new Point2D.Double(layerBounds.getX() + layerBounds.getWidth()

- (x + viewBounds.getWidth()), layerBounds.getY() + layerBounds.getHeight()

- (y + viewBounds.getHeight()));

// Now transform the new view position into global coords

camera.localToView(newPoint);

// Compute the new matrix values to put the camera at the

// correct location

final double newX = -(at.getScaleX() * newPoint.getX() + at.getShearX() * newPoint.getY());

final double newY = -(at.getShearY() * newPoint.getX() + at.getScaleY() * newPoint.getY());

at.setTransform(at.getScaleX(), at.getShearY(), at.getShearX(), at.getScaleY(), newX, newY);

// Now actually set the camera's transform

camera.setViewTransform(at);

scrollInProgress = false;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值