在iOS中,我试图确定一个矩形上的点,该矩形与从预定角度的中心点到矩形周边的虚线相交.
假设我知道中心点,矩形的大小和角度(从东向0度开始,向北逆时针旋转90度,西向180度,南向270度至东经360度).我需要知道交叉点的坐标.
在给定角度的矩形上查找点时,有些令人困惑的(对我来说)数学但可能是准确的答案导致我尝试以下代码,但它无法正常工作.这个问题类似于那个问题,但我正在寻找一个更正的Objective-C/iOS方法而不是一般的数学响应.
我认为代码问题的一部分与使用单个0到360度角(弧度,不可能有负数)输入有关,但可能还有其他问题.下面的代码主要使用belisarius答案中定义的符号,包括我尝试计算那里定义的四个区域中每个区域的交叉点.
这段代码在我的UIImageView子类中:
- (CGPoint) startingPointGivenAngleInDegrees:(double)angle {
double angleInRads = angle/180.0*M_PI;
float height = self.frame.size.height;
float width = self.frame.size.width;
float x0 = self.center.x;
float y0 = self.center.y;
// region 1
if (angleInRads >= -atan2(height, width) && angleInRads <= atan2(height, width)) {
return CGPointMake(x0 + width/2, y0 + width/2 * tan(angleInRads));
}
// region 2
if (angleInRads >= atan2(height, width) && angleInRads <= M_PI - atan2(height, width)) {
return CGPointMake(x0 + height …
Run Code Online (Sandbox Code Playgroud)