求平面内一点绕另一点旋转后的坐标(C#)

dvec3 updatePositionRotate(dvec3 NodePos, dvec3 TargetPos, double angle)//角度为angle
	{
    
    
		//最后的新位置
		dvec3 newPos = new dvec3();
		newPos.x = (NodePos.x - TargetPos.x) * Math.Cos(angle * 0.01745)-(NodePos.y - TargetPos.y) * Math.Sin(angle * 0.01745) + TargetPos.x;
		newPos.y = (NodePos.y - TargetPos.y) * Math.Cos(angle * 0.01745) + (NodePos.x - TargetPos.x) * Math.Sin(angle * 0.01745) + TargetPos.y;
		newPos.z = NodePos.z;
		return newPos;
	}

0.01745是PI/180
测试可用,记录备用。

猜你喜欢

转载自blog.csdn.net/weixin_41487423/article/details/126000220