問題タブ [bezier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - ベジェ曲線での「適切な」制御点の配置
私はしばらくの間この問題に取り組んできましたが、これまでのところ良い解決策を思い付くことができませんでした。
問題:3つ(またはそれ以上)の2Dポイントの順序付きリストがあり、「見栄えがする」ように、3次ベジェ曲線でこれらをストロークしたいと思います。「見栄えが良い」部分は非常に単純です。2番目のポイントのウェッジを滑らかにしたいだけです(たとえば、カーブがそれ自体でダブルバックしないようにします)。したがって、3つのポイントが与えられた場合、曲線を描くときにトリプレットの2番目のポイントを囲む2つのコントロールポイントをどこに配置する必要があります。
これまでの私の解決策は次のとおりですが、不完全です。このアイデアは、私が求めている外観を伝えるのにも役立つかもしれません。
(x1、y1)、(x2、y2)、(x3、y3)の3つのポイントが与えられます。ポイントの各トリプレットによって内接する円を取ります(それらが同一線上にある場合は、それらの間に直線を引いて先に進みます)。点(x2、y2)でこの円に接する線を取ります-この接線上に(x2、y2)を囲む制御点を配置します。
それは私が立ち往生している最後の部分です。私が抱えている問題は、この接線上に2つの制御点を配置する方法を見つけることです。この線上の(x2、y2)からどれだけ離れているかについては、十分なヒューリスティックがありますが、もちろん、その距離にあるこの線上の2つのポイント。「間違った」方向のものを計算すると、曲線はそれ自体でループします。
3つのポイントで表される円の中心を見つけるには(いずれかのポイントのx値が同じ場合は、以下の計算でポイントを並べ替えるだけです)。
次に、接線上の点を見つけるために、この場合は、point2からpoint3に向かう曲線の制御点を見つけます。
java - 2 つの JInternalFrame インスタンスを接続する CubicCurve2D
JInternalFrame
私は (Swing で) 2 つの をCubicCurve2D
(立方ベジェ曲線とも呼ばれる) に接続する方法を見つけようとしています。私が達成しようとしている全体的な効果は、Yahoo!に似たインターフェイスです。パイプ(カーブは 1 つの内部フレームの下部から他のフレームの上部に移動する必要があります)。
ここに誰かこれをやったことがありますか?私が直面している問題は、ユーザーに見える方法で更新曲線を描く方法がわからないことです。描画してから再描画JDesktopPane.getGraphics
しても何も起こらないようです。
可能であれば、オフスクリーン バッファを使用したいと考えています。
javascript - ベジエ曲線上の制御点を計算する方法は?
私はベジェ曲線を持っていますが、ある時点で、最初の曲線をスムーズに「分岐」する2番目のベジェ曲線が必要です。交点 (ベジエ曲線に沿ったパーセンテージ) を計算すると共に、制御点 (タンジェントとウェイト) も必要です。交点は、次の JavaScript で計算されます。
(IE 以外のブラウザーでは、http: //www.iscriptdesign.com -> チュートリアル -> グループ & パスで動作を確認できます)。今必要なのは、分岐点のコントロールポイントまたは (タンジェントとウェイト) だけです (どこから始めればよいかわかりません。可能であれば、同じパラメーターからの関数として、誰かが何らかのコードまたは数式を指摘してくれることを願っています。上記の getBezier 関数と同様)。
c# - 開始点と終了点のみでベジエ曲線を計算するには?
私は元々、はるかに単純な (そしてあまり役に立たない) 質問を投稿し、これを編集してより具体的にしました。
ウィキペディアのこのアニメーションは、基本的に私が達成したいことを示していますが、それを反転させて、目的地に向かって「上」(この画像) に進み、その後、より直接的に最後まで弧を描くことを望んでいます。点。ただし、私は開始点と終了点にしかアクセスできません。私が望んでいるのは、「高さ」(または幅、あなたがそれを呼びたいものは何でも)を指定して他の点を決定し、どのくらい高いかを決定できることです。アークは実際に進みます。 http://en.wikipedia.org/wiki/File:Bezier_3_big.png (担当者が少ないため画像を投稿できません)
開始点と終了点、および高さを指定して関数を呼び出し、曲線の途中にあるすべての点を返すようにしたいと考えています。
ヘルプまたは指示をいただければ幸いです。
c++ - 2つの3次ベジエ曲線が交差するかどうかの確認
個人的なプロジェクトの場合、2つの立方ベジェ曲線が交差するかどうかを確認する必要があります。私はどこにいるのかを知る必要はありません:私は彼らがそうするかどうかを知る必要があります。しかし、私はそれを速くする必要があります。
私はその場所を掃除していて、いくつかのリソースを見つけました。ほとんどの場合、有望な答えがあったこの質問がここにあります。
したがって、シルベスター行列とは何か、行列式とは何か、結果とは何か、なぜそれが役立つのかを理解した後、ソリューションがどのように機能するかを理解したと思いました。しかし、現実は違うように頼み、それはあまりうまく機能しません。
いじり
グラフ電卓を使用して、交差する2つのベジェスプライン( B0とB1と呼びます)を描画しました。それらの座標は次のとおりです(P 0、P 1、P 2、P 3):
結果は次のようになります。B0は「水平」曲線であり、B1はもう1つの曲線です。
前述の質問の上位投票の回答からの指示に従って、 B0をB1に減算しました。私の計算機によると、2つの方程式(X軸とY軸)が残りました。
シルベスター行列
そして、そこから次のシルベスター行列を作成しました。
その後、余因子展開を使用して行列式を計算するC++関数を作成しました。
比較的小さなマトリックス(2x2、3x3、4x4)でかなりうまく機能するように見えるので、6x6マトリックスでも機能すると思います。ただし、徹底的なテストは行っていないので、壊れている可能性があります。
問題
他の質問の答えを正しく理解した場合、曲線が交差するため、行列式は0になります。ただし、上記で作成したシルベスター行列をプログラムにフィードすると、-2916になります。
それは私の側の間違いですか、それとも彼らの側の間違いですか?2つの立方ベジェ曲線が交差するかどうかを確認する正しい方法は何ですか?
c# - ベジェ曲線に沿ってすべてのポイントを返す方法は?
始点と終点のみに基づいてベジェ曲線を生成することについての以前の質問を投稿しましたが、その回答のおかげで、私が持っている情報を使用してベジェ曲線を作成することができました。
これは、フォームに必要な種類の曲線を描画できるようにするコードです。
方法はありますか、または誰かが曲線を形成するすべてのポイントを返すのを手伝ってくれますか?それらのポイントから計算された曲線の各ポイントをポイントの配列で返したいのですが、それを理解することができず、stackoverflowまたはgoogleinで同様の解決策を見つけることができませんでした全般的。
ありがとう。
iphone - 単純な3次ベジェ曲線に沿って、指定された距離の点を見つけます。(iPhoneで!)
cocoaアプリケーションでcurveToPoint:controlPoint1:controlPoint2:を使用して作成された完全に通常の4点ベジェ曲線(2点と2つの制御点)があるとします。
曲線に沿って、どのようにして点(および接線)を見つけますか?
後で:以下のMichalの回答に基づく完全で単純化されたソリューションについては、次をクリックしてください:
3次ベジェ曲線上の点の接線を見つける(iPhoneの場合)
そして、 https://stackoverflow.com/a/31317254/294884からコードをコピーして貼り付けるだけです
opengl - サイズを変更した後、このプログラムでベジエ曲線を適切に描画するにはどうすればよいですか?
このコードは、ウィンドウが元のサイズ (640 x 480) で使用されている場合はベジエ曲線を適切に描画しますが、サイズを変更するとコントロール ポイントを正しくレンダリングしません。
クリックマウス機能には次のものがあります。
座標系の扱いがわかりません。
SCREEN_HEIGHT 変換を使用すると 640x480 では機能するのに、他のウィンドウ サイズでは機能しないのはなぜですか? どのようにそれを普遍的にすることができますか?
私自身のアプリでは、glutOrtho2d を使用せずに X、Y ごとに計算するだけで作業していましたが、このアプローチの方が優れていることを読みました。詳細な説明をいただければ幸いです。
変更されたコード:
元のコード:
ios - 3次ベジェ曲線上の点の接線を見つけます
通常の4つの点a、b、c、dを持つ3次ベジェ曲線の場合、
与えられた値tに対して、
その点で最もエレガントに接線を見つける方法は?
cocoa - CoreAnimation を回避するための NSImage への NSBezierPath
現在、次の行があるアプリがあります。
NSBezierPath を介して GUI 要素を描画するため。この行は必須です。そうしないと、ユーザーが隣接する (重複する) NSTextField に入力すると、myViewの内容が震えます。
CoreAnimation を呼び出すと、OpenGL フレームワークがロードされますが、アンロードされないことがわかりました。この質問を参照してください。
NSBezierPathをNSImageに描画し、NSBezierPath の代わりに NSImage を表示することで、これを回避できると思いますが、これについて説明する単一のソースは見つかりませんでした。
編集:
NSBezierPath が表示される前にこれを保存したいことに注意してください。そのため、既存のビューを NSImage に描画するソリューションは役に立ちません。
質問:
NSBezierPath を NSImage に変換するための正しい方向を教えてもらえますか?