急,在线等!!!急,在线等!!!第二问能不能是逆时针旋转270°?为什么?不能,是顺时针旋转270度,逆时针无法得到提纲的三角形...
急,在线等!!!
急,在线等!!!第二问能不能是逆时针旋转270°?为什么?
答案:顺时针旋转270度或逆时针旋转90度。
角度的正负号能表示大小吗? 比如90°和-270° 哪个大呢
90°是角的一边逆时针旋转90°而得到的,而-270°是顺时针旋转270° 而得到的,所以是-270°大。
顺时针和逆时针有什么不同?
顺时针方向运行指依从时针移动的方向运行,由右上方向下,然后转向左,再回到上。数学上,在直角坐标系以方程式x=sint和y=cost定义的圆形,随着t值增加所代表的线段就是依顺时针方向绘画。
逆时针方向运行指依从时针移动的相反方向,即可视为由左上方向下,然后转向右,再回到上。也就是说逆时针方向就是顺时针方向的相反,也是镜射变换后的结果,故逆时针方向的反方向就是顺时针方向。
扩展资料
机械表的表盘来源于日晷,日晷是人类测量时间间隔的第一个工具。
最简单的日晷就是插在朝向太阳的一个平面上的一把尖刀,在这个平面上,时间由尖刀投射的阴影表示,阴影的长度和方向处于不断变化之中。
在北半球,日晷的使用可以追溯到公元前4000年。如果太阳位于东方,阴影就朝向西方,反之亦然。因此,在白天阴影自西向东移动。也就是说,阴影对于朝向北的观察者来说呈顺时针方向移动。
在机械表中,15世纪末在北半球引入的指针的运动无论过去还是现在都与日晷的运动类似。在南半球,日晷的阴影则是从东向西移动。假设钟表起源于南半球的话,那么指针就会按逆时针方向移动。
相机的角度问题
最常见的相机安装情况是:面对屏幕, 后置相机头朝右安装(如果是面向背壳的话是头朝左安装), 前置相机也是头朝右安装.
比如后置相机(可以把后置相机看成人眼), 我们正对着屏幕, 后置相机的安装方向如上所说, 此时sensor向右旋转了90度(就是顺时针旋转了90度, 就相当于我们人眼睛向右旋转了90度). 那么输出的图像相对于正常的情况下就是向左旋转了90度(相当于逆时针旋转了90度), 那么此时我们需要把得到的图像顺时针旋转90度才能得到正常的图像, 所以此时CaemraInfo.orientation是90度
同理,对于前置摄像头安装方向也是如上, 前置摄像头并不相当于我们的眼睛, 它相当于一个镜子. 前置相机向右旋转了90度, 那么输出图像也是向右旋转了90度(也就是顺时针旋转了90度). 所以我们应该在顺时针旋转270度, 才能把图像恢复成正常的, 所以此时相机CameraInfo.orientation是270度.
要通过 setRotation 给图片设置正确的旋转方向, 必须配合使用 CameraInfo.orientation 和 OrientationEventListener .(OrientationEventListener传入的参数是0-359之间的任意一个值)
我们要配合 OrientationEventListener 和 Camera.CameraInfo.orientation 来给图片的EXIF信息设置正确的旋转值, 这个值的含义是拍摄这张图片的时候摄像头相对于自然方向的旋转角度.
Listener 中得到的值是屏幕相对于自然方向的旋转值., CameraInfo.orienetation 是可以认为是相机sensor的安装方向, 所以对于后置相机来说, Listener 的值加上 CameraInfo.orientation 的值, 就是相机在拍摄一张照片的时候总共相对于自然方向的旋转值, 我们通过 setRatation 设置这两个角度的和,就可以给图片的EXIF信息设置正确的相机旋转信息
对于前置摄像头来说, 这两个的差值就是拍摄照片时候摄像头的旋转角度.
还以上面的例子, 对于后置摄像头来说, info.orientation是90, 如果orientation也是90, 说明此时手机也向右旋转了90度, 那么此时后置摄像头的头部是朝下的, 所以按照上面的公式可以得出来setRotation是180.
对于前置相机来说此时前置摄像头的头部也是朝下的, info.orientation是270, orientation是90, 计算出来setRotation也是180.
这个是设置屏幕相对于相机的旋转角度, 这个是和预览有关的, 通过设置这个值可以让预览在屏幕上始终是正确的.
这个方法的参数的含义是告诉系统, 应该把图像顺时针旋转多少度就可以正常显示图像了.
我们通过 WindowManager.getDefaultDisplay 得到屏幕相对于自然方向的当前的旋转角度, 通过 CameraInfo.orientation 得到相机的安装角度.
务必注意对于Display的getRotation方法也是只能得到四个值, 但是它有一点很特别的是:顺时针旋转90度, 得到的是270, 逆时针旋转90度, 得到的90. 正常情况下顺时针旋转90度是90, 逆时针旋转90度是270, 它正好反过来了
对于后置相机来说, 这两个的差值就是相机现在相对于屏幕的旋转角度.
还是上面的例子,对于后置摄像头来说, 如果屏幕没有旋转,是0度, 相机的安装角度 CameraInfo.orientation 是90度, 我们可以 setDisplayOrientation(90) , 就是告诉系统要把图片顺时针旋转90度就可以正常显示图片.
如果此时我们把手机顺时针旋转了90度,此时后置摄像头的头部是朝上的, 那么通过Display.getRotation得到的值是270度, 按照下面的计算方法, (info.orientation - degrees + 360) % 360 , 得到的值是180, 我们setDisplayRotation(180)正好可以告诉系统说旋转180度图像就正常了.
如果我们把手机逆时针旋转了90度, 此时后置摄像头的头部是朝下的, 那么通过Display.getRotation得到的值是90度, 按照下面的计算方法, (info.orientation - degrees + 360) % 360 , 得到的值是0, 正好可以告诉系统不需要旋转就可以得到正确的图像.
前置摄像头也是这样的逻辑.
如果认为本文对您有所帮助请赞助本站