java 剪切图片点坐标_经过matrix平移缩放旋转的图片,如何动态求出图片中心点坐标...

项目中遇到这样的需求,需要动态求出正在编辑的图片的中心点坐标,编辑操作共有三种,平移,缩放和旋转.

其中平移缩放可以按照如下代码正确求出图片左上角和右下角坐标,但是旋转不可以.

/**

*

* @param matrix imageView的矩阵对象

* @param imageView 图片对象

* @return

*/

public float[] getLeftTop(Matrix matrix, GestureCropImageView imageView) {

Rect rectTemp = imageView.getDrawable().getBounds();

float[] values = new float[9];

matrix.getValues(values);

//左上角X坐标

mLeftX = values[2];

//左上角Y坐标

mLeftY = values[5];

//如果旋转的话

if (mState == ROTATE_STATE) {

//x0= (x - rx0)*cos(a) - (y - ry0)*sin(a) + rx0 ;

//

//y0= (x - rx0)*sin(a) + (y - ry0)*cos(a) + ry0 ;

//右下角X坐标

mRightX = (float) ((mRightX - mMidPntX) * Math.cos(mAngle / 180 * Math.PI) - (mRightY - mMidPntY) * Math.sin(mAngle / 180 * Math.PI) + mRightX);

//右下角Y坐标

mRightY = (float) ((mRightX - mMidPntX) * Math.sin(mAngle / 180 * Math.PI) + (mRightY - mMidPntY) * Math.cos(mAngle / 180 * Math.PI) + mRightY);

Log.i(TAG, "宽度 :" + rectTemp.width() * values[0]);

Log.i(TAG, "长度 :" + rectTemp.height() * values[4]);

} else {

//右下角X坐标

mRightX = values[2] + rectTemp.width() * values[0];

//右下角Y坐标

mRightY = values[5] + rectTemp.height() * values[4];

}

float[] arr = {mLeftX, mLeftY, mRightX, mRightY};

return arr;

}

2.现在已知的条件有,图片旋转的角度,图片按某点旋转的点坐标,左上角的坐标,如何才能求出右下角的坐标?

//x0= (x - rx0)cos(a) - (y - ry0)sin(a) + rx0 ;

//y0= (x - rx0)sin(a) + (y - ry0)cos(a) + ry0 ;

这是我的一种思路,但是出来的结果不对.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值