Rotate point in rectangle(在矩形中旋转点)
本文介绍了在矩形中旋转点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在一个矩形中有一个点,我需要旋转任意角度并找到该点的 x y.我如何使用 javascript 来做到这一点.
I have a point in a rectangle that I need to rotate an arbitrary degree and find the x y of the point. How can I do this using javascript.
在 x,y 下方会是 1,3,在我将 90 传递给方法后,它将返回 3,1.
Below the x,y would be something like 1,3 and after I pass 90 into the method it will return 3,1.
|-------------|
| * |
| |
| |
|-------------|
_____
| *|
| |
| |
| |
| |
_____
|-------------|
| |
| |
| *|
|-------------|
_____
| |
| |
| |
| |
|* |
_____
基本上我正在寻找这种方法的勇气
Basically I am looking for the guts to this method
function Rotate(pointX,pointY,rectWidth,rectHeight,angle){
/*magic*/
return {newX:x,newY:y};
}
推荐答案
应该这样做:
function Rotate(pointX, pointY, rectWidth, rectHeight, angle) {
// convert angle to radians
angle = angle * Math.PI / 180.0
// calculate center of rectangle
var centerX = rectWidth / 2.0;
var centerY = rectHeight / 2.0;
// get coordinates relative to center
var dx = pointX - centerX;
var dy = pointY - centerY;
// calculate angle and distance
var a = Math.atan2(dy, dx);
var dist = Math.sqrt(dx * dx + dy * dy);
// calculate new angle
var a2 = a + angle;
// calculate new coordinates
var dx2 = Math.cos(a2) * dist;
var dy2 = Math.sin(a2) * dist;
// return coordinates relative to top left corner
return { newX: dx2 + centerX, newY: dy2 + centerY };
}
这篇关于在矩形中旋转点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在矩形中旋转点
基础教程推荐
猜你喜欢
- jQuery File Upload - 如何识别所有文件何时上传 2022-01-01
- 如何在特定日期之前获取消息? 2022-01-01
- 每次设置弹出窗口的焦点 2022-01-01
- Javascript 在多个元素上单击事件侦听器并获取目标 2022-01-01
- 为什么我在 Vue.js 中得到 ERR_CONNECTION_TIMED_OUT? 2022-01-01
- 什么是不使用 jQuery 的经验技术原因? 2022-01-01
- Node.js 有没有好的索引/搜索引擎? 2022-01-01
- WatchKit 支持 html 吗?有没有像 UIWebview 这样的控制器? 2022-01-01
- 如何使用 CSS 显示和隐藏 div? 2022-01-01
- 如何使用sencha Touch2在单页中显示列表和其他标签 2022-01-01
