問題タブ [graphics]
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.
visual-studio-2008 - Cairo を Visual C++ 2008 (Express エディション) 用にコンパイルする方法
ほとんどのプリコンパイル済み Windows バイナリは、MSYS+gcc ツールチェーンで作成されています。Visual C++ 2005/2008 と互換性のない MSVCRT ランタイムを使用します。
では、Cairo 1.6.4 (またはそれ以降) を Visual C++ のみでコンパイルする方法について説明します。依存関係 (png、zlib、pixman) を含みます。
graphics - ソフト ペイント ブラシ ストロークをレンダリングするためのアルゴリズムが必要です
マウス ポイントの配列、ストローク幅、および柔らかさがあります。柔らかな円や柔らかな線が描けます。ポイントの配列を描画するには、どのアルゴリズムを使用すればよいですか? 端点だけでなく、交差した線も見栄えがするようにしたい。
math - 楕円の軸に沿った境界ボックスをどのように計算しますか?
楕円の長軸が垂直または水平の場合、バウンディング ボックスを計算するのは簡単ですが、楕円を回転させた場合はどうでしょうか。
これまでに考えられる唯一の方法は、周囲のすべてのポイントを計算し、最大/最小の x および y 値を見つけることです。もっと簡単な方法があるはずです。
任意の角度で楕円を記述する関数 (数学的な意味で) がある場合、その導関数を使用して、勾配がゼロまたは未定義の点を見つけることができますが、見つけることができないようです。
編集:明確にするために、軸に沿ったバウンディングボックスが必要です。つまり、楕円で回転するのではなく、x軸に合わせたままにする必要があるため、バウンディングボックスの変換は機能しません。
graphics - ImageMagickでアイコンを単一の画像に連結する方法は?
Web サイトで個別の画像ファイルではなくCSS スプライトを使用して、すべて同じサイズの小さなアイコンを大量に集めたいと考えています。ImageMagickを使用してそれらを 1 つの大きな画像に連結 (タイル) するにはどうすればよいですか?
c++ - ベクトルをマージするためのアルゴリズムのヘルプ
次のタスクには非常に高速なアルゴリズムが必要です。私はすでにそれを完成させるいくつかのアルゴリズムを実装していますが、それらはすべて私が必要とするパフォーマンスに対して遅すぎます. 最新の CPU でアルゴリズムを少なくとも 1 秒間に 100,000 回実行できるほど高速である必要があります。C++ で実装されます。
線上に開始座標と終了座標を持つ構造であるスパン/範囲を使用しています。
スパンの 2 つのベクトル (動的配列) があり、それらをマージする必要があります。1 つのベクトルは src で、もう 1 つのベクトルは dst です。ベクトルはスパン開始座標でソートされ、スパンは 1 つのベクトル内でオーバーラップしません。
src ベクトルのスパンは dst ベクトルのスパンとマージする必要があります。これにより、結果のベクトルがソートされ、オーバーラップがなくなります。すなわち。マージ中にオーバーラップが検出された場合、2 つのスパンが 1 つにマージされます。(2 つのスパンのマージは、構造内の座標を変更するだけの問題です。)
ここで、もう 1 つ問題があります。マージ中に src ベクトルのスパンを「拡張」する必要があります。これは、src 内のすべてのスパンの開始座標に定数が追加され、別の (より大きな) 定数が終了座標に追加されることを意味します。これは、src スパンが拡張された後にオーバーラップする可能性があることを意味します。
私がこれまでに到達したことは、完全にその場で行うことはできず、何らかの一時的な保管が必要であるということです. 合計された src と dst の要素数に対して線形時間で実行できるはずだと思います。
一時ストレージは、おそらくアルゴリズムの複数の実行間で共有できます。
私が試した 2 つの主なアプローチは遅すぎますが、次のとおりです。
src のすべての要素を dst に追加し、追加する前に各要素を拡張します。次に、インプレース ソートを実行します。最後に、「読み取り」および「書き込み」ポインターを使用して結果のベクターを反復処理します。読み取りポインターは書き込みポインターの前に実行され、スパンが進むにつれてマージされます。すべての要素がマージされると (読み取りポインターが end に達すると)、dst は切り捨てられます。
一時的な作業ベクトルを作成します。src または dst から次の要素を繰り返し選択し、work-vector にマージすることにより、上記の単純なマージを実行します。完了したら、work-vector を dst にコピーして置き換えます。
最初の方法には、ソートが O(m+n) ではなく O((m+n)*log(m+n)) であり、多少のオーバーヘッドがあるという問題があります。また、dst ベクトルが実際に必要とするよりもはるかに大きくなる必要があることも意味します。
2番目には、大量のコピーとメモリの割り当て/割り当て解除という主な問題があります。
スパン/ベクターの保存/管理に使用されるデータ構造は、必要に応じて変更できます。
更新: データセットの大きさを言い忘れました。最も一般的なケースは、いずれかのベクトルの要素が 4 ~ 30 で、dst が空であるか、src と dst のスパン間に大量の重複があります。
c# - 描画およびアプリケーションの終了時に C# で ObjectDisposedException を回避する方法
私は CompSci の学生で、C# の初心者で、クラスで「Josephus Problem」プログラムを作成していました。Application.Exit() を呼び出していつでも終了できる終了ボタンを作成しましたが、C# がまだ描画中にボタンが押されると、Graphics オブジェクトの ObjectDisposedException がスローされます。これを防ぐ方法はありますか?ブール値をキャッチまたは変更して、描画プロセスを終了する前に停止するようにしようと考えていましたが、別の解決策があるかどうか知りたいです。{}
javascript - Javascript描画ライブラリ?
JavaScriptインタラクティブ描画ライブラリに関する提案はありますか?線、多角形、さまざまな色のテキストを描く必要があります。IE / Firefox / Opera/Safariと互換性があります。
graphics - 線分が2Dで軸に沿った長方形と交差するかどうかをテストする方法は?
線分が2Dで軸に沿った長方形と交差するかどうかをテストする方法は? セグメントは、その 2 つの端点 p1、p2 で定義されます。四角形は、左上と右下の点で定義されます。
opengl - AMD64ビットデュアルコア最適化
グラフィックスを多用するアプリケーションがあり、AMD 64ビットデュアルコアプラットフォームで問題が発生しているようですが、Intelプラットフォームでは明らかではありません。
アプリケーションを実行すると、特にシャドウとライティング(Open GL)にコードを使用する場合に、CPUが100%で実行されます。
これを引き起こす可能性のあるAMDプロセッサの特定の問題、または問題を追跡する場所、および/またはこれらの問題を回避するためにコードベースを最適化する方法を知っている人はいますか?
アプリケーションは通常、ミッドレンジのハードウェアで正常に動作します。私の開発マシンにはnvidia gtx260カードが搭載されているため、電力不足は問題になりません。
algorithm - 画像のグラデーションで塗りつぶされたコーナーをブレンドするアルゴリズム
画像の周りにアルファ ブレンドされたグラデーションの境界線を配置する必要があります。私の問題は、コーナーをブレンドして、水平方向と垂直方向のグラデーションが交わる場所を滑らかにすることです。この問題を解決する標準アルゴリズムがあると思います。何年も前に学校で遭遇したと思います。しかし、いくつかの Web 検索で 1 つの参照を見つけることができませんでした。
(隅に放射状の塗りつぶしパターンを実装しましたが、遷移はまだ十分にスムーズではありません。)
私の質問:
この問題の標準アルゴリズムがある場合、その名前は何ですか? さらに良いことに、どのように実装されていますか?
標準的なアルゴリズムを使用せずに、角に滑らかなグラデーションを生成するために必要なピクセル値を決定する最良の方法は何ですか? (縦のグラデーションから横のグラデーションにスムーズに移行します。)
編集:大きな画像の上に挿入する画像があると想像してください。大きい画像は黒一色で、小さい画像は白一色です。挿入する前に、小さな画像にアルファ値を設定してその周りに透明な「境界線」を作成し、大きな画像に「フェード」することで、小さな画像を大きな画像にブレンドしたいと考えています。正しく行うと、黒から白への滑らかなグラデーションが得られます。コーナーと内側のエッジを除くすべての場所で行います。
画像の中央近くのグラデーション境界の端では、値は 255 になります (透明ではありません)。境界が外側の端に近づくにつれて、アルファ値は 0 に近づきます。頂点と水平の境界が交わる画像のコーナーでは、対角線に相当するものになります。その線引きをなくしてスムーズに移行したい。
私が必要としているのは、水平エッジと垂直エッジが交差するときに画像の隅で重なる各ピクセルのアルファ値 (0 ~ 255) を決定するアルゴリズムです。