通常bezier路徑的參數爲0 < = t < = 1描述曲線上的某個點。部分貝塞爾曲線與UIBezierPath [ios]
我想要做的是:
我有4個點(開始,結束,2個控制點),現在,我想從t = 0畫一條線到t = 0.5。有沒有在iOS(原生框架或開源)中做到這一點的標準方法?
如果這是不可能的,我將不得不計算我自己的端點和兩個新的控制點。
通常bezier路徑的參數爲0 < = t < = 1描述曲線上的某個點。部分貝塞爾曲線與UIBezierPath [ios]
我想要做的是:
我有4個點(開始,結束,2個控制點),現在,我想從t = 0畫一條線到t = 0.5。有沒有在iOS(原生框架或開源)中做到這一點的標準方法?
如果這是不可能的,我將不得不計算我自己的端點和兩個新的控制點。
如果您只對繪圖感興趣,並且不計算與他們做別的事情的要點,那麼您可以將路徑調整到t = 0.5。
您可以通過設置strokeStart
和strokeEnd
屬性來完成此操作,設置爲CAShapeLayer
。筆畫的外觀可以是諸如strokeColor
和lineWidth
的屬性。我建議您查看the documentation查看完整的房產列表。
的代碼會是這個樣子(我沒有跑這所以有可能是拼寫錯誤等):
CAShapeLayer *halfBezier = [CAShapeLayer layer];
// use the full path
halfBezier.path = [yourFullPath CGPath];
// configure the appearance
halfBezier.fillColor = [[UIColor clearColor] CGColor];
halfBezier.strokeColor = [[UIColor redColor] CGColor];
halfBezier.lineWidth = 2.0;
// 0.0 ≤ t ≤ 0.5
halfBezier.strokeStart = 0.0; // the default value (only here for clarity)
halfBezier.strokeEnd = 0.5; // only up until t=0.5
// add this layer to the view's layer where it is supposed to be drawn
[yourView.layer addSublayer:halfBezier];
謝謝,我剛剛在一條貝塞爾路徑動畫問題上找到了答案。 –
你只關心繪製路徑,或者你需要知道什麼是新的控制點會是? –
您可以爲任何圖形操作繪製一個任意的裁剪區域,根據您正在做的事情,這可能更合適。 – Dave
Thx @Dave,但裁剪對我來說還不夠。大衛的回答對我來說效果不錯! –