我在两条其他点之间的线上有一个标签点。从该线的第一个点开始说出它的20个像素。在一条线上移动一个点:用两条线之间的线
现在我想要移动该行的第一个点,将标记点与我一起移动,因此我移动第一个点并将该行重新绘制到该行的最后一个点。 工作正常,但我如何将标签移动到新行,并将其从左侧再放20px。
(长度20px因变量而异,具体取决于用户在标签上放置的位置)。
我想喜欢使用Y = KX + M不能让它虽然正确的...
这是我到目前为止已经写的:
-(double)positionOfLabel{
//return relative position of label on old line, relatively the first point.
return [self length]- sqrt(self.label.center.x*self.label.center.x+self.label.center.y*self.label.center.y);
//return [self length]-sqrt((self.last.x - self.label.center.x)*(self.last.x - self.label.center.x) + (self.last.y - self.label.center.y)*(self.last.y - self.label.center.y));
}
-(void)labelTranslate:(double)length{
NSLog(@"Translating label length:%f", [self length]);
double m= (self.last.y-self.first.y)/(self.last.x-self.first.x);
double x= self.first.x+length/(sqrt(1+m*m));
double y= x*m;
NSLog(@"Moving label to:%f,%f", x,y);
[self.label setCenter:CGPointMake(x, y)];
}
标签位置是指为返回多远从标签的第一个点放置。在该行 image
正如你可以在图像中看到的端部因此两个点的线的运动,以及
实施例中,箭头表示由第一和最后一个点的一条线。在箭头的移动/平移期间保留红点和第一点之间的距离。但是,这是不工作使用我的算法
确实' - (double)positionOfLabel'看起来正确吗? –
不确定,因为(self.label.center.x)是一些相对于??????的位置 – MBo
它相对于你的漂亮图中的点1的原点:) –