簡體   English   中英

繪制所有象限的曲線/查找貝塞爾曲線的動態控制點

[英]Drawing curve working for all the quadrants / Finding dynamic control points for the Bézier curve

形狀

問題是,是否有人敲打如圖所示的abc角。 1,然后應繪制曲線如圖。 2使用CoreGraphics。 我使用貝塞爾曲線進行了嘗試,但是不同象限中的形狀需要動態控制點,這非常復雜(我想)。 有人可以為此建議解決方案嗎?

如果我理解正確,那么您需要知道的是如何在不同象限中找到合適的控制點。 鏈接將為您提供所需的確切信息。 如果要繪制三次貝塞爾曲線,則第18頁適合您。 但是,我建議您完全閱讀它,以更好地了解貝塞爾曲線。

本文給出的公式將幫助您准確地繪制一個象限的橢圓弧。 您可以使用角度定義象限。 為了使用本文找到控制點,您需要提供以下數據:

  • 起始和終止角度(將定義象限)
  • 根據您的身材曲線的半徑

我沒有經過數學運算,而是想以編程方式為所有象限繪制完美的曲線。

其算法如下:( 這是一種為所有象限查找完美的貝塞爾曲線控制點的算法, 這意味着您將獲得貝塞爾曲線的動態控制點 。)

問題:給定3個點a,b,c,任務是繪制角度為abc的曲線(曲線結構固定為問題中的圖所示)。

  1. 取功能中的所有三個點a,b,c。

  2. 將所有3個點a,b,c轉換為相對於點a的原點。

  3. 查找第三點c位於左側還是右側。

  4. 旋轉第二點b以與x軸重合。

  5. 步驟4之后,您將處於零位置。

    (在這里,您可以根據需要選擇貝塞爾曲線的控制點。不必為控制點解任何關系。您可以僅使用簡單的加/減數學來設置控制點。)此處獲得的控制點將對所有象限都是完美的。

  6. 在第5步之后,我們獲得了貝塞爾曲線的所有控制點,現在將所有這些控制點移到原始位置,
    一種。 第一旋轉點b和兩個控制點(在步驟4中為b的旋轉角度)
    b。 將所有點平移回其原始位置(即,相對於點a-反轉步驟1的轉換)。

現在,您將獲得適用於所有象限的立方貝塞爾曲線所需的控制點。
使用貝塞爾曲線功能繪制曲線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM