0

私はこのコードを持っています。ここで、locationとpreviousLocationは2つのCGPointです。

    CGRect  bounds = [self bounds];
UITouch *touch = [[event touchesForView:self] anyObject];
    CGPoint point = [touch locationInView:self];
    location = CGPointMake(point.x,point.y);
    location.y = bounds.size.height - location.y;
    CGPoint prev = [touch previousLocationInView:self];
    previousLocation = CGPointMake(prev.x, prev.y);
previousLocation.y = bounds.size.height - previousLocation.y;
    [self renderLineFromPoint:previousLocation toPoint:location];

わかりました。これは、GLPaintアプリケーションの「touchmoved」内にあるコードの一部です。しかし、私の問題は、不動点にシフト位置とpreviousLocationが必要なことです。この点は、画像ビューの頂点にあり(ビューにタッチしたときに画像をドラッグするため、これを行います)、この点の値は次のようになります。

CGPoint *vertex = (imageView.center.x-100, imageView.center.y+100);

だから私のコードは次のように変更されます:

    CGRect  bounds = [self bounds];
UITouch *touch = [[event touchesForView:self] anyObject];
    //CGPoint point = [touch locationInView:self];
    location = CGPointMake(vertex.x,vertex.y);
    location.y = bounds.size.height - location.y;
    //CGPoint prev = [touch previousLocationInView:self];
    previousLocation = CGPointMake(prev.x, prev.y);        <---- ?????
previousLocation.y = bounds.size.height - previousLocation.y;
    [self renderLineFromPoint:previousLocation toPoint:location];

場所は簡単に変更できますが、私の問題はpreviousLocationです。どうすれば変更できますか?次に、私の質問は...場所とpreviousLocationの違いを知る方法は何ですか?どうすればその差を計算できますか?したがって、動的な違いがわかっている場合は、正しいシフトpreviousLocationを設定できます...

4

1 に答える 1

0

これが解決策です:

CGPoint gap = CGPointMake(cur.x - prev.x, cur.y - prev.y); 
于 2012-11-21T14:47:58.533 に答える