絶望的な四角圢の怜玢

iOSで圢状の基になっおいる神秘的な数孊を怜玢する







これは、あるFigma゚ンゞニアがプログラミングの問題に察する完璧な答えをどのように探しおいたかに぀いおの物語です。






1972幎の有名なむンタビュヌで、チャヌルズむヌムズはデザむンの性質に関するいく぀かの基本的な質問に簡単に答えたした 。 最初の質問に答えお、圌はデザむンを「特定の目暙を達成するための芁玠のレむアりト蚈画」ず定矩したした。



残りの答えも比metaたで非垞に簡朔です。 しかし、むヌムズは蚭蚈制玄の圹割に぀いお尋ねられたずき、むンタビュヌを止めお、最も長く思慮深い答えをむンタビュヌに出したした。「蚭蚈問題の数少ない効果的な鍵の1぀は、蚭蚈者ができるだけ倚くの制玄を認識する胜力です。 これらの制玄に取り組むこずに察する圌の意欲ず熱意。」



私は専門職のデザむナヌではありたせんが、コラボレヌションWebデザむンツヌルであるFigmaの開発者ですが、むヌムズのコメントが私の䜜品に圓おはたるのは簡単です。 UI芁玠の代わりに、コヌドで衚珟された数孊的抂念を構成しお、ツヌルず機胜を䜜成したす。 そしお、時間、シンプルさ、サポヌト、さらには矎孊の限界も、私の䜜品で同様の支配的な圹割を果たしおいたす。



最近のプロゞェクトでは、これらの類䌌点を特に匷調しおいたす。 なんずなく奇劙な名前のリスず䞀緒にAppleのフィギュアのサポヌトをFigmaに远加するように指瀺されたした。 私はトピックを勉匷し始めたした。



この研究は、誀スタヌト、隠れた問題、新たな制玄、知性、緊匵、そしお解決に満ちた、真の数孊的なオデッセむに倉わりたした。 ぀たり、すべおのデザむナヌがある皋床毎日経隓しおいるずいう話でした。



私の䌌たような数孊の倩才に喜びを䞎え、数孊を䜿甚しお蚭蚈プロセス党䜓を瀺すために、各ステップを最初の正方圢から最終結果たで以䞋に説明したす。



Quadrocircle䞞め挔算子



この話は、私がFigmaを蚭立するずっず前、぀たりiOS 7がリリヌスされた2013幎6月10日から始たりたした。新しいOSには、ほずんど目立たないアップデヌトがありたした。 角の䞞い正方圢の代わりに、各アむコンは四角圢になりたした四角圢、「正方圢/長方圢」ず「円圢」の単語の組み合わせ。



あなたは尋ねたす、違いは䜕ですか 正盎なずころ、それは小さいです。角の䞞い通垞の長方圢が基準になりたすが、曲線が始たる堎所でファむルによっおわずかに凊理されたす。 したがっお、盎線から曲線ぞの移行はシャヌプではなくなりたす。



数孊の蚀語で正確に定匏化された堎合、四角圢は呚囲の連続的な曲率を持ちたすが、䞞みを垯びた正方圢はそうではありたせん。 これは些现なこずのように思えるかもしれたせんが、無意識のうちに倧きな圱響がありたす。四角圢は凊理された正方圢のようには芋えたせん。 それは、川の底にある滑らかな小石の圢ずしお、独立した有胜な゚ンティティずしお認識されたす-単䞀の基本的な党䜓。





1.1。 䞞みを垯びた正方圢ず四角圢の比范明らかに、差は小さい



工業デザむナヌは、物䜓の知芚にずっお䞞めがどれほど重芁かを長い間知っおいたした。 Macbookの隅や、机のランプの䞋にある昔ながらの有線ヘッドフォンケヌスをよく芋おください。 角床がはっきりず察照的なたぶしさを攟぀䜍眮を芋぀けるのがどれほど難しいかに泚意しおください。



その理由は、蚭蚈者によっお特別に蚭蚈された曲線の連続性です。 ゜フトりェアずハ​​ヌドりェアの䞡方を開発したナニヌクな経隓を持぀Appleが、最終的に工業デザむンのアむデアをむンタヌフェむスデザむンに適甚し、アむコンを独自の生産物のように芋せるこずは驚くこずではありたせん。



フォヌムから匏ぞ



もちろん、FigmaはiOSデザむナヌを愛しおおり、ナヌザヌは垞に適切なプラットフォヌム芁玠を手に入れるべきだず考えおいたす。 蚭蚈䞭にこの新しいフォヌムにアクセスできるようにするには、正確な数孊的蚘述を芋぀ける必芁がありたす。 次に、このフォヌムをツヌルに埋め蟌む方法を理解し始めたす。



幞いなこずに、iOS 7のリリヌス以来、人々はこの質問をしおきたした。もちろん、私たちはこの道を最初に行ったわけではありたせん マヌク゚ドワヌズの元の基本的な䜜業には、アむコンの圢状がスヌパヌ楕円ず呌ばれる楕円の特別な䞀般化であるこずを瀺すスクリヌンショットが含たれおいたした。 次の数匏は 、 a、b、およびnの遞択に応じお、円、楕円、および超楕円を蚘述したす。





2.1。 超楕円匏



たずえば、 n = 2、 a = 5、 b = 3を遞択するず、 x軞に沿った倧きな半軞5ずyに沿った小さな半軞3を持぀通垞の楕円が埗られたす。 n = 2のたたにしおa = b = 1を遞択するず、単䜍半埄の理想的な円が埗られたす。 しかし、 nを 2぀以䞊遞択するず、超楕円が埗られたす。これは、内接する長方圢の圢状ず融合し始める䞞い楕円圢で、 nが無限倧になるず角が完党に盎線になりたす。 もずもずAppleはn = 5の圢匏を遞択したず想定されおいたした。 この匏を詊しおみるず 、iOS 7+で䜿甚されおいるものに非垞に近いこずがわかりたす。



本圓の蚘述が本圓にそのようなものである堎合、合理的な量のベゞェ曲線を適甚するこずができたす-そしお、新しい抂念をFigmaに泚意深く統合したす。 しかし、残念なこずに、 慎重なフォロヌアップ分析により、超楕円匏は適切ではないこずが瀺されたしたただし、今日では真の超楕円が実際に他のアむコンずしお䜿甚されおいたす。 実際、䞊蚘の匏のすべおのオプションnには、アむコンの実際の圢状ず比范しお、小さいが䜓系的な矛盟がありたす。



これは史䞊最初の行き止たりです。iOSの四角圢に非垞によく䌌たものに察する゚レガントで単玔な方皋匏がありたすが、それは根本的に間違っおいたす。 しかし、ナヌザヌに正しい方皋匏を䞎える必芁がありたす。



前進するには真剣な努力が必芁であり、再び私は他人によっおbyかれた䜜物を刈り取るこずができお嬉しいです。 Juicy Bitsの研究者Mike Swansonは、四角圢の角床は䞀連のベゞェ曲線に基づいおいるず仮定したした。 圌は遺䌝的アルゎリズムを䜿甚しお、 Appleの公匏圢匏ずの類䌌性を最適化したした。 アむコンを盎接生成するiOSコヌドを研究したManfred Schwindの優れた盎接比范から明らかなように、結果はオリゞナルず䞀臎しおいたす。 したがっお、ベゞ゚曲線に同じ構造を䞎える2぀の異なるアプロヌチがありたす。iOS7の四角圢は、独立した研究者によっおハッキングおよびダブルチェックされ、蚈算する必芁さえありたせん。



実行䞭のファむル



Figmaでフォヌムを盎接耇補できないようにする2぀の重芁な詳现が残っおいたす。



たず、驚くべき事実は、iOSフォヌミュラのバヌゞョン少なくずも調査䞭がいく぀かの癖で䜜られおいるこずです-角床は完党に察称ではありたせんが、䞀方では明らかにここにはないはずの小さな盎線セグメントがありたす。 コヌドずテストの䞡方を耇雑にするため、必芁ありたせん。バグが欠萜しおいる角床の半分をミラヌリングするだけで簡単に削陀できたす。



第二に、iOSの実際の長方圢の瞊暪比を揃えるず、アむコンの圢状が、必芁な四角圢から完党に異なる圢状に劇的に倉化したす。 このようなひねりは蚭蚈者にずっお䞍快なものであり、特定の条件䞋でどのようなフォヌムが衚瀺されるべきかを明確に決定する必芁がありたす。



四角圢を揃えるずきの最も自然で䟿利な動䜜は、角の䞞い郚分ずたっすぐな郚分の間の移行の䜙地がなくなるたで、スムヌゞングが埐々に消えるこずです。 さらに調敎するず、䞞みのある郚分の半埄が小さくなるはずです。これは、Figmaの珟圚の動䜜ず䞀臎しおいたす。 Appleのquadrocircle公匏はここではあたり圹に立ちたせん。固定された方法で四捚五入されるからです。叀い䞞い長方圢に近づいたり離れたりする方法に぀いおの指瀺を䞎えないからです。 本圓に必芁なのは、特定のパラメヌタヌ倀がAppleの圢状に非垞に近いパラメヌタヌ化可胜な䞞めです。



远加のボヌナスずしお、角が䞞い長方圢の四角圢ぞの倉換をパラメヌタヌ化できる堎合、䞞みが䜿甚されおいるFigmaの他の堎所、星、倚角圢、任意の手描きのベクタヌネットワヌクの角にも同じプロセスを適甚できたす。 耇雑ではありたすが、iOS 7の四角圢を远加するよりもはるかに完党で䟡倀のある機胜に芋え始めたす。今では、倚くの状況で䜿甚するための無限の倚様な新しい圢状をデザむナヌに提䟛し、そのうちの1぀はそれがすべお開始したquadrocircraftアむコンに察応しおいたす。



四角圢の䞞めパタヌンがスムヌズに調敎可胜であるず同時に、調敎範囲から特定の䟿利なポむントでiOS 7の圢状に準拠するずいう芁件は、私たちの歎史の䞭で生じた最初の制限であり、満たすこずは困難です。 バレリヌナの堎合、同様のタスクは飛行䞭の1぀の写真からゞャンプ党䜓を蚭蚈し、ある時点でゞャンプ段階が写真に察応するようにするこずです。 すごく聞こえたす。 それで、ただ䜕らかの蚈算が必芁ですか



匷力なツヌル平面曲線の埮分幟䜕孊



四角圢のパラメヌタヌ化に突入する前に、䞀歩䞋がっお、䜕が起きおいるのかを分析するのに圹立぀正匏なツヌルからほこりを吹き飛ばしたしょう。 たず、四角圢の蚘述方法を決定する必芁がありたす。 以前は、超楕円の堎合、 xずyの方皋匏を䜿甚したした。方皋匏の条件を満たす平面䞊のすべおの点 x、y は、超楕円を挔edしたした。 これは単玔な方皋匏の堎合ぱレガントですが、実際の四角圢はベゞ゚曲線のパッチワヌクであり、制埡されおいない方皋匏の山に぀ながりたす。



この耇雑さは、より明瀺的なアプロヌチを䜿甚しお凊理できたす.1぀の倉数tを取埗し、有限間隔に制限し、この間隔のtの各倀を四角圢の呚囲の個別のポむントず比范したす実際、ベゞェ曲線はほずんど垞にこの方法で衚されたす。 角床の1぀だけに集䞭し、それによっお分析を明確な開始ず終了のある曲線に制限する堎合、 t = 0が行の開始に察応し、 t = 1が行の終了に察応し、 tの滑らかな倉化になるように、 tず角床の間のマップを遞択できたす0から1たでは、角の䞞い郚分を滑らかにトレヌスしたした。 数孊蚀語では、曲線の角床rtを蚘述したす。





4.1。 [0,1]を䜿甚した平面曲線の党単射



ここで、 xtおよびytは、rのxおよびy成分に察するtの別個の関数です。 rtは、たずえば車での旅行の独特な歎史ずしお想像できたす。 出発から到着たでの各時点tに぀いお、 rtを掚定し、ルヌト䞊の車の䜍眮を取埗できたす。 経路rtから、速床vtず加速床atを導出できたす。





4.2。 平坊な曲線の速床ず加速床



最埌に、私たちの歎史の䞭で重芁な圹割を果たす数孊的曲率は、速床ず加速床の芳点から次のように衚珟できたす。





4.3。 平面曲線の笊号なし曲率



しかし、この匏は本圓に䜕を意味するのでしょうか これは少し耇雑に芋えるかもしれたせんが、曲率は元々コヌシヌのために単玔な幟䜕孊的蚭蚈をしおいたす



  1. 曲線に沿った任意の点Pの曲率䞭心Cは、 Pの曲線の法線ず、 Pに限りなく近い別の法線の亀点にありたす。 泚ずしお、ラテン語の動詞osculareから、 Cを䞭心ずする円はPの 接觊円ず呌ばれたす。これは「キス」を意味したす。それは玠晎らしいこずではありたせんか
  2. 曲率半埄Rは、 CずPの間の距離です。
  3. 曲率κはRの逆数です。


䞊蚘のように、曲率κは負ではなく、右に曲がっおも巊に曲がっおも違いはありたせん。 この違いは重芁であるため、 κから笊号曲率kを䜜成し、曲線が右に曲がる堎合は正の笊号を、巊に曲がる堎合は負の笊号を割り圓おたす。 この抂念は、車を運転するこずず比范するこずもできたす。任意のポむントtで、笊号曲率ktは、時刻tでハンドルが回転する角床であり、右折を瀺すプラス蚘号ず巊折を瀺すマむナス蚘号です。



ゞオメトリルヌルアヌク長のパラメヌタヌ化



曲率の​​導入により、いく぀かの詳现のみを解決するこずに倉わりはありたせん。 たず、四茪車の角に沿っお2台の車が移動しおいるこずを想像しおください。 1台の車は急激に加速し、その埌垞にブレヌキをかけ、もう1台の車は最埌たで均等に加速したす。 これら2぀の異なる運転方法は、同じ経路であっおも、非垞に異なるトラック履歎を生じさせたす。 どのように共通の分母に導くこずができるのか、それを達成する方法ではなく、コヌナヌの圢状のみに関心がありたすか ここで重芁なのは、履歎ポむントをマヌクするずきに時間を䜿甚するこずではなく、移動した合蚈距離、぀たり円匧の長さを䜿甚するこずです。 ぀たり、「旅行の10分間で車はどこにありたしたか」ずいう質問の代わりに、「旅行の開始から10 マむルで車はどこにありたしたか」ずいう質問に答える方がよいでしょう。 この軌跡の蚘述方法は、ゞオメトリのみをキャプチャし、それ以䞊はキャプチャしたせん。



パスrtの履歎がある堎合は、垞にパスの時間tの関数ずしおアヌクsの長さを抜出し、速床を次のように統合できたす。





5.1。 アヌク長積分



この関係を逆にしおtsを芋぀けるこずができる堎合、パスrtの履歎でtの代わりにそれを䜿甚しお、アヌク長rsの目的のパラメヌタヌ化を取埗できたす。 パスのアヌク長のパラメヌタヌ化は、単䜍速床で移動する自動車のパスの履歎に盞圓するため、速床vsが垞に単䜍ベクトルであり、加速床asが垞に速床に垂盎であるこずは驚くこずではありたせん。 したがっお、匧の長さに沿っおパラメヌタ化されたバリアントでは、曲率の蚘述は加速床倀たでのみ簡略化されたす。





5.2。 匧の長さに沿っおパラメヌタ化されたバリアントの曲率



たた、察応する右たたは巊の笊号を蚭定しお、笊号付き曲率ksを圢成できたす。 明らかに、曲率のより䞀般的な定矩における耇雑さのほずんどは、単玔にパスの履歎の非幟䜕孊的内容から構成されおいたした。 結局のずころ、曲率は玔粋に幟䜕孊的な量であるため、幟䜕孊的なパラメヌタヌ化では単玔に芋えるこずが非垞にうれしいです。



曲率の​​蚭蚈、曲線の蚈算



次に別の詳现に぀いお。 パスrtの履歎の蚘述からアヌク長パラメヌタヌrsの蚘述に進む方法ず、そこから笊号曲率ksを抜出する方法を芋぀けたした。 しかし、私たちは反察をするこずができたすか 曲率プロファむルを蚭蚈し、それから芪曲線を導き出したすか 車ずの類掚をもう䞀床芋おみたしょう。ルヌト党䜓に沿っお䞀定の単䜍速床で運転しおいるずきに、経路党䜓にわたっおハンドルの䜍眮を連続的に固定するずしたす。 このステアリングデヌタを取埗しお別のドラむバヌに転送した堎合、ステアリングホむヌルの䜍眮を正確に再珟し、たったく同じ速床で運転すれば、ルヌトを完党に埩元できたすか 盎感的に、芪曲線を埩元するのに十分な情報がありたすが、この蚈算は数孊的にどのように芋えたすか 少し荒いですが、これは円匧の長さをパラメヌタ化するこずでオむラヌのおかげで可胜です。 曲線が原点から始たり、最初にx軞に沿っお始たるように座暙系を遞択した堎合、 xsずysはksから次のように埩元できたす。





6.1。 曲率によっお曲線を埩元する



最埌に、サむン関数ずコサむン関数の匕数に泚意しおください。これは笊号曲率の積分です。 通垞、䞉角関数は匕数ずしおラゞアン単䜍の角床を指定したす。 私たちの堎合、曲率によっお笊号化されたaからbたでの積分は、 bのレヌトからaのレヌトを匕いたものです。 したがっお、長方圢を取り、奜きなように角を䞞めお、䞞みを垯びた郚分の曲率を枬定し、結果を積分するず、垞にπ/ 2が埗られたす。



四重構造



詳现を把握した埌、これらの分析ツヌルを実際のフォヌムに適甚したす。 長方圢の䞞い角から始めたしょう。角の半埄は1です。 たず、角床自䜓を構築し、次に円匧の長さの関数ずしお曲率を構築したす。





7.1。 角䞞長方圢の曲率分析



ここで、実際のApple四角圢の角床に぀いおこのプロセスを繰り返したす。曲率が非垞に異なるこずがわかりたす。





7.2。 Quadrocircle Curvature Analysis iOS 7



曲率はややギザギザに芋えたすが、必ずしも悪いわけではありたせん。埌で芋るように、滑らかな曲率グラフず少数のベゞェ曲線の間で劥協点を芋぀けるこずができたす。iOSコヌナヌには3぀しかありたせん。通垞、蚭蚈者は数孊的に完党な曲率プロファむルを犠牲にしお、ベゞェ曲線の数を枛らしたす。詳现を砎棄するず、䞀般的な画像が右のグラフに衚瀺されたす。曲率が䞊昇し、䞭倮に揃えられ、その埌䞋に戻りたす。



ブレヌクスルヌパラメヌタヌ化された平滑化



ビンゎこの最埌の芳察では、四角圢の角床の平滑化をパラメヌタヌ化する方法の鍵ずなりたす。平滑化がれロの堎合、曲率プロファむルは䞞みを垯びた長方圢のようになりたす。぀たり、カりンタヌトップの圢になりたす。平滑化が埐々に増加するず、カりンタヌトップの高さは倉化したせんが、その゚ッゞは急募配になり、二等蟺台圢のプロファむルを圢成したすもちろん、以前のように、共通の角床π/ 2。平滑化が最倧に近づくず、台圢の平らな郚分が消えたす-そしお、高さが元のカりンタヌトップの高さに察応する幅の広い二等蟺䞉角圢を取埗したす。





8.1。平滑化パラメヌタヌのさたざたな倀の



曲率プロファむルΟを䜿甚しお、曲率プロファむルのこのスケッチを数孊甚語で衚珟しおみたしょう。れロから1に倉化する平滑化パラメヌタヌずしお。盎角がない他の圢匏で䜿甚するために、回転角Ξも導入したす。これは、長方圢の堎合はπ/ 2です。これらを組み合わせるこずにより、区分的連続関数は3぀の郚分で衚珟できたす。1぀は曲率を䞊げるため、1぀はフラットトップ甚、3぀目は降䞋甚です





8.2。パラメヌタ化キャンバヌkvadrokrugaに



近づいたずきにメモは、第1及び第3の郚分昇降が消えるこずΟをれロに、及び䞭間郚フラットトップが近づいお消滅Οをナニットに。䞊蚘では、曲率プロファむルから芪カヌブに進む方法を瀺したした。曲率がれロから始たり着実に増加する線を蚘述する最初の方皋匏でこれを詊しおみたしょう。たず、簡単な内郚積分を䜜成し





たす 8.2。匏8.2に関連する6.1の最初の積分



これたでのずころ、すべおが正垞です続けお、次の積分ペアを圢成でき





たす。匏8.2に適甚される6.1の2番目の積分フレネル積分



残念なこずに、これらの積分はそれほど単玔ではないため、ここで立ち埀生しおいたす。䞉角関数ず指数の関係に぀いお聞いたこずがある堎合、これらの積分は誀差関数に関連しおいるず掚枬できたす。誀差関数は初等関数では衚珟できたせん。同じこずがこれらの積分にも圓おはたりたす。それで、私たちは䜕をする぀もりですか解決策はこの蚘事の範囲倖ですヒントに぀いおはMath StackExchangeのこの投皿を参照が、この堎合、べき玚数のサむンずコサむンを眮き換えおから、合蚈ず積分を倉曎できたす





8.4。䞀連のフレネル積分ぞの展開べき玚数は



ほずんど通過できないように思えるので、別の手順を実行し、各行の最初のいく぀かの芁玠を明瀺的に曞き、すべおを単玔化しおみたしょう。これにより、xに察しお次のいく぀かの芁玠が埗られたす。およびy圢匏





8.5。8.3の䜎次芁玠n <3



クロ゜むドの神栌化



これは具䜓的な結果です実際に、このペアの方皋匏のグラフをΟ、Ξ、Rの適切な遞択を䜿甚しお描画し、sの関数ずしお茪郭を取埗できたす。任意の数の芁玠ず合蚈を蚈算する胜力がある堎合、sが増加するず、曲線は螺旋状にねじれたすが、これは関心のある領域から遠く離れお発生したす。



この蚘事の最初から論文を繰り返したすが、私たちは再びそのような研究に埓事する最初ではありたせん。実際には非垞に䟿利な盎線の曲率のため、倚くの人が過去にこの曲線に出くわしたした。オむラヌスパむラル、コルヌスパむラル、たたはクロ゜むドずしお知られ、道路やゞェットコヌスタヌなどのトラックの蚭蚈に広く䜿甚されおいたす。





9.1。 s = 5たでのClotoid



分解がnたでしか䜿甚されない堎合8.5で述べたように、10未満の堎合、最初のアヌティファクトを生成するために必芁なものがすべお揃っおいたす。このシリヌズは、匏8.2の昇順最初の郚分を衚しおいたすが、降順3番目の郚分に簡単に適合させるこずができ、これらの郚分をフラット2番目郚分の円匧セグメントで互いに接続したす。この方法は、数孊的に完党な四角圢の角床を提䟛したす。これは、匏8.2で最初に導入された曲率蚭蚈ず完党に䞀臎したす。以䞋は、Ο = 0.4の四角圢の角床に぀いおクロ゜むドに察しお実行された曲率分析





です。 9次クロ゜むドず円匧を䜿甚する堎合のΟ= 0.4での四角圢の角床



このような゚レガントな圢状を埗るのは良いこずですが、これは理想的なバヌゞョンにすぎないこずを理解しおおく必芁がありたす。この正確な圢状は、いく぀かの理由で機胜したせん。これらのうち、䞻な理由は、円圢郚分の曲率䞭心が平滑化パラメヌタヌΟの関数ずしお移動するこずです。理想的には、固定されたす。



さらに重芁なこずは、私たちが定矩した条件でのアヌク長sの皋床は9に達する可胜性があるこずです。 figmaでは、すべおの連続曲線は3次ベゞェ曲線その特別な堎合は2次ベゞェ曲線ず線で衚される必芁がありたす。これにより、3次および䜎次の甚語のみの保存に制限されたす。぀たり、xsおよびysの䞊蚘の各シリヌズ1぀の芁玠に切り捚おられたす。このような切り捚お埌、図の必芁なプロパティが保持されるこずを期埅するこずは困難です。



残念なこずに、高次のメンバヌを削陀するだけでは䞍十分です。これは、Οの倀が倧きい堎合、結果の構築が非垞にうたく機胜しないためです。以䞋の図は、Ο = 0.99.3の結果を瀺しおい





たす。 3次クロ゜むドおよび円匧を䜿甚したΟ= 0.9での四角圢の角床



この圢匏は明らかに䜿甚できたせん。3桁では、䞊昇ず䞋降の党長に沿っお曲率を増加させるのに十分ではないようです。これは、円の匧䞭間セグメントに出かけたずきに倧きな゚ラヌが蓄積されおいるこずを意味したす。残念ながら、これはクロ゜むドを䜿甚した結果が䜿甚に適しおいないこずを意味したす。最初からやり盎す必芁がありたす。



氞遠に続くものはない



䞀歩䞋がっお、私たちの制限をもう䞀床考えおみおください-そしお、新しい方向に出発する前に、以前の努力を最倧限に掻甚しおください。



たず、理想的なクロ゜むド構造には必芁な曲率プロファむルがありたすが、䞭倮の円圢断面の曲率䞭心は、平滑化パラメヌタヌΟの関数ずしおその䜍眮を倉曎したす。。 UIでは、ポむントが曲率の䞭心にあり、長方圢を䞞めるため、これは望たしくありたせん。ナヌザヌは、角をドラッグしお角の半埄を蚭定したす。スムヌゞングの倉化に合わせおこのポむントが動き始めるず、少し奇劙になりたす。さらに、iOSフォヌムでは、䞭倮のセクションは、単玔な䞞い長方圢の堎合の堎所になりたす。これは、䞭心䜍眮がΟから完党に独立しおいるこずを瀺しおいたす。したがっお、曲率の蚭蚈の同じ䞻な目暙を維持し、Οが倉化したずきに円圢断面が䞀定の曲率䞭心を維持するずいう制限を远加できたす。



第二に、四角圢の角を䜜成するためにデザむナヌがあたりにも耇雑なツヌルを必芁ずしないこずを知っおいたす。 Appleシェむプでは奇劙な小さな盎線郚分を削陀した埌、円圢セクションを曲線の着信郚分に接続するベゞ゚曲線が1぀だけありたす。



第䞉に、わかりにくい技術的な制限がありたす。これらは最初から明らかではありたせんが、深刻な実装の問題になりたす。それらを理解するために、半埄20ピクセルの暙準的な䞞みを付けた100×100ピクセルの正方圢を考えおください。これは、正方圢の各蟺に60pxの盎線があるこずを意味したす。正方圢を80×100pxの長方圢に平坊化するず、短蟺の盎線郚分はわずか40pxになりたす。長方圢を狭くしお、真っ盎ぐな断片になるずどうなりたすかたたは、20×100pxのようにさらに長方圢に狭め続けたら珟時点では、Figmaは角を䞞くするために適甚可胜な最倧倀を決定し、それを䜿甚したす。したがっお、20×100pxの長方圢には、半埄10pxのフィレットがありたす。



R Ο p , p(R,Ο) Ο(R,p).


四角圢でのスムヌゞングプロセスは、単玔な䞞み付けよりも盎線偎のピクセルを倚く消費したす。同じ正方圢100×100pxを想像し、20pxの䞞めを行っおから、いく぀かのスムヌゞング手順を適甚しお、たっすぐな偎面から別の12ピクセルを削陀したす。これにより、盎線郚分にわずか36ピクセルが残りたす。長方圢を60×100ピクセルに狭めるずどうなりたすか類掚により、スムヌゞングスケヌルは、盎線セクションのサむズを超えないレベルに瞮小する必芁があるこずはほずんど明らかです。しかし、特定のピクセル数を満たす量Οの蚈算方法は蚈算は高速でなければなりたせん。そうしないず、この関数を実装できたせん。



繰り返したすが、問題は数孊的に非垞に正確に蚘述されおいたす半埄Rの角を滑らかにする堎合たた、パラメヌタΟはpピクセルを消費するため、関数pR、ΟはΟR、pで可逆でなければなりたせん。これはやや隠された制限であり、近くの高次クロ゜むドの解も陀倖したす。



最埌に、䜿いやすさの制限がありたす。スムヌゞングの倉曎は、少なくずも䜕らかの圢で目立぀はずです。れロず1の間でスムヌゞングパラメヌタヌΟを前埌に匕くず、違いがわかりたすすべおの䜜業が埮劙な倉化に぀ながるこずを想像しおください-これは受け入れられたせん。これは基本的に実甚性の芁件であり、実際、これは最も重芁な制限です。



シンプルなほど良い



䞊蚘の制限を満たしながら、考えられる最も簡単なアプロヌチを詊しおみたしょう。 1぀のパラメヌタヌ化されたベゞェ曲線を取埗したす。これは、円圢の郚分を取り、それを盎線偎に接続したす。次の図は、適切なタむプのベゞェ曲線を瀺しおいたす。





11.1。四角圢の角床の昇順郚分の3次ベゞェ曲線の制埡点



このベゞェ曲線のいく぀かのプロパティは、さらに説明する䟡倀がありたす。たず、コントロヌルポむント1、2、および3が䞊んでいたす。これにより、ポむント1で曲率がれロになり、四角圢の盎線郚分に接続されたす。䞀般に、座暙系を定矩し、ポむント1をP1に、ポむント2をP2に接続するなどの堎合、ポむント1の曲率は次の匏で䞎えられたす。





11.2。図1のポむント1での単玔化されおいない曲率11.1



ポむント1〜3が䞊んでいる堎合、端数削枛がはっきりず芋えたす。同じ数匏をポむント4に適甚しお、座暙を逆順で瀺し





たす  11.3。図4の点4の簡略化された曲率11.1



理想的には、曲率は円圢断面ず同じ、぀たり 1 / Rになり、別の制限に぀ながりたす。最埌に、 cず dの倀は、この曲線の終点が円圢郚分ず䞀臎し、接觊箇所に圱響を䞎える必芁があるずいう事実により固定されおいたす。そのため、䞊蚘の制限の曲率は、単に私たちの䟡倀䞎え、B





11.4。図のbの解11.1曲率の連続性を提䟛する



曲率の​​最初の線圢増加を維持するこずが重芁な堎合ポむント1のクロ゜むドを䜿甚した理想的な゜リュヌション、aをbに蚭定するず、ベゞェ曲線䞊のすべおのポむントが修正され、朜圚的な゜リュヌションが埗られたす。これらの芳枬を䜿甚しお、平滑化Ο = 0.6 を䜿甚しお、ベゞェ曲線䞊に単玔な四角圢を䜜成したす。







芋栄えがよく、ここではクロ゜むドの最初の蚈算から倚くのヒントが䜿甚されおいたす。残念ながら、0から1 たでのΟの党範囲にわたる散垃は、実際には目に芋えたせん。 2぀のズヌムレベルでの角床を以䞋に瀺したす。異なる色のΟ = 0.1、0.3、0.5、0.7、0.9の曲線を瀺したす。







優れた数孊的性質にもかかわらず、その効果はほずんど目立ちたせん。もちろん、このオプションは、クロ゜むドの数を枛らしお以前に取埗した曲線よりも実際の補品に近いものです。バリ゚ヌションを増やすために数匏を調敎できればいいだけです



小さなタッチ



さらに䞀歩進んで、どのように進めるかを考えるこずができたす。平滑化に䜿甚されるピクセルず平滑化パラメヌタヌΟの間に可逆的な関係が必芁であるこずを思い出しおください。たず、この倉換に焊点を圓おお、できるだけシンプルにするこずができたす。次に、それから2次円のパラメヌタヌ化を詊みたずきに䜕が起こるかを確認したす。



角の単玔な䞞み付けでピクセルがどのように䜿甚されるかに぀いおはすでに知っおいたす。必芁な䞉角法に぀いおは蚀及したせんが、半埄Rで䞞められた開口角Ξは、角の䞊郚からqピクセルを䜿甚し、qは次のように定矩されたす。䞞め長さ









最も簡単な方法で、qに基づいおpR、Οを遞択するずどうなりたすか





。 たずえば、12.2。䞞めず平滑化のセグメントの長さ



これは、最倧平滑化パラメヌタヌでは、通垞の䞞めに䜿甚したのず同じセグメント長が䜿甚されるこずを意味したす。この遞択により、䞊の図の数量a + bが固定されたす。リコヌルどのような状況の䞋でいるこずをCずD恒久的に固定するので、远加の固定されおいるB +、我々は最埌の意思決定を行うために残されおいるこずを意味するどのように倧きなAに察するB繰り返したすが、最も単玔な遞択、぀たりa = bを遞択した堎合、次にベゞ゚曲線のパラメヌタヌ化の定矩を終了したす。その角床ず曲率を以䞋に瀺したす





。12.3。単玔なスムヌゞングスキヌムの角床の圢状ず曲率のプロファむル



このような芖芚的な倚様性はすでに有望に芋えたす。曲線は魅力的でしっかりしおいたす。しかし、曲率プロファむルは倱瀌です。さお、ピヌクを少し滑らかにするず、最終リリヌスの真剣な候補が埗られたす。脆匱なプロファむルにもかかわらず、この単玔なフォヌムファミリヌでさえ、Appleの四角圢サヌクルバヌゞョンに非垞によく䌌たむンスタンスがありたす。ナヌザヌに明確な良心を持っお展開するのにほが十分です。



次に、最埌の未解決の問題である曲率プロファむルに移りたしょう。むしろ均等に分割差よりもAずB、䞊蚘で行ったように、なぜ間隔aの3分の2を遞択し、残りのbを遞択しないのですかこれにより、曲率プロファむルの長いテヌルを短くし、ピヌクをカットするこずにより、曲率が速くなりすぎるのを防ぎたす。このような倉曎により、次のフォヌムが䜜成されたす





。改善された単玔な平滑化スキヌムの角床圢状ず曲率プロファむル



曲率プロファむルは倧幅に改善されおおり、実際の補品を䜜成するには芖芚的な倚様性で十分です。平滑化パラメヌタヌΟ = 0.6は、iOSの圢状にほが完党に䞀臎し、生成が驚くほど単玔であるにもかかわらず、曲線の良奜な倖芳が保持されたす。それでは、質問をする時が来たしたそれがリリヌスされるのを劚げるものは䜕ですかなし。



リリヌス埌の考え方



結果ずしお、プロセス自䜓を反映するこずが有甚です。この話でも同じこずが繰り返し確認されおいたす。可胜な限り単玔なアプロヌチの匷さず有効性です。最悪の堎合、機胜しない堎合は比范の基瀎が埗られたす。それを真剣に評䟡するこずは、アプロヌチずさらなるプロモヌションを最終決定するずきに考慮すべき最も重芁なこずを決定するのに圹立ちたす。そしお、最良の堎合、私たちず同じように、最も単玔なアプロヌチはすでにかなり良い結果をもたらしおいたす



最埌に、良い補品ず完璧な補品の違いに぀いお考えたいず思いたす。私は、より良い曲率プロファむルを思い付かなかったこずに少し混乱しおいたす。研究には倚くの遞択肢があるため、より倚くの時間が割り圓おられるず確信しおいたす。知的芳点からするず、このような矎しい䞀連のクロ゜むドを入手できたのは少し䞍快ですが、最終バヌゞョンでは䜿甚できたせんでした。しかし、より重芁な結論がありたす。小さな䌚瀟で働くずきの時間制限は非垞に珟実的であり、それらに違反する蚭蚈は良いずは芋なされたせん。



All Articles