我在兩條其他點之間的線上有一個標籤點。從該線的第一個點開始說出它的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的原點:) –