問題タブ [paint]
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.
python - Python と pygame で MS Paint のクローンを作成する方法
私が見ているように、マウスイベントを処理して絵を描く方法は 2 つあります。
1 つ目は、マウスの移動を検出し、マウスがある場所に線を引くことです (ここに示す) 。ただし、これに伴う問題は、ブラシ サイズが大きいと、線のストローク サイズを使用して太い線を作成するため、直線ではない各「線」の間に多くのギャップが発生することです。
もう 1 つの方法は、ここに示すように、マウスの移動時に円を描くことです。これに伴う問題は、コンピューターがマウス入力を検出するよりも速くマウスを動かすと、各円の間に隙間ができることです。
両方の問題に関するスクリーンショットを次に示します。
MS Paint のようなブラシを、線のストロークに隙間がなく、各円の間に隙間がなく、適度に大きなブラシ サイズで実装する最良の方法は何ですか?
c - シンプルなオープンソースのペイント プログラム
カスタム機能を追加して、ペイントのようなプログラムを拡張して実験しようとしています。C で記述され、拡張可能な GTK+ ライブラリを使用する単純なオープン ソースのペイントのようなプログラムを提案できますか? Linux でコンパイルする必要がありますが、Windows でも (MinGW を使用して) コンパイルする必要があります。ありがとう。
編集:
これを見つけて、探していたもののように見えますが、もっとシンプルなものがあれば欲しいです。
c# - 既存の ToolStripRenderer を使用して、ホストされている NumericUpDown をペイントするにはどうすればよいですか?
をホストし、のプロパティを公開するコントロールがNumericUpDown
ありますToolStripControlHost
。NumericUpDown
機能的には問題ToolStrip
ありませんが、 に配置すると、視覚的に他ToolStripItem
の と一致しません。
ToolStrip
既存のを使用して、コントロールにもある es とToolStripRenderer
同様の方法でコントロールを描画したいと思います。コントロールを使用する他のユーザーが、選択したレンダラーで使用できるようにしたいので、それを行うToolStripComboBox
ためのカスタムを作成することに興味はありません。ToolStripRenderer
ホスティング コントロール クラスとホストされたコントロール クラスでオーバーライドを試みOnPaint
、レンダラーの描画メソッドを使用してみましたが、達成できるのは端の周りに未塗装の領域を持つことだけです。OnPaintBackground
スピン ボタンは引き続きシステム テーマで描画されます。
NumericUpDown
既存の を使用してホストされた をペイントするにはどうすればよいToolStripRenderer
ですか?
delphi - Delphiコントロールが現在表示されているかどうかを確認するにはどうすればよいですか?
カスタムコントロール(TCustomControlから派生)が現在表示されているかどうかを確認する方法が必要です。.Visibleプロパティについて話しているのではありません。現時点で実際に画面に表示されているかどうかを意味します。誰かがこれを行う方法を知っていますか?
c++ - C++/Qt: キャレットの描画
私はQtを学んでいます。QAbstractScrollArea を継承して、ゼロからテキスト エディターを書き始めました。私は練習のためにこれをやっています。しかし今、キャレットを表示するという問題に直面しています。私の頭に浮かぶのはpainter.drawLine
とQTimer
です。これについてアドバイスをいただけますか。ブロックキャレットとアンダースコアキャレットを実装するためのいくつかの戦略を聞いてうれしいです.
オフトピック: これはバグですか? StackOverflow は、この質問には 2 つの答えがあると言っていますが、私は 1 つしか見ていません!
iphone - iPhoneの画面に線で署名を描く方法は?
ユーザーが iPhone の画面に署名を描画できるようにしたいので、UIView のサブクラスを追加し、その 'touchesMoved' メソッドにいくつかのコードを追加します。
小さな長方形で描いていますが、ドットバイドットであることがわかりました。あまりにも醜いので、署名を線で描きたいと思います。しかし、firstTouch と lastTouch を区別する方法は? 「touchesMoved」メソッドのみを使用すると、1 つのタッチ ポイントしか取得できません。
reverse-engineering - 古いペイント プログラムのリバース エンジニアリング
非常に古い MSDos ベースのペイント プログラムがいくつかあります。これらは、パレット インデックス付きのイメージ バッファで動作します。それらには、現代のどのペイント プログラムにも存在しない、数多くの見事な形状描画ツール、ブラシ、および効果があります。dosbox のようなエミュレーターを起動しなくても、これらの素晴らしいツールの多くを最新のプログラムで再現したいと考えています。しかし、私には問題があります。
これらのブラシやツールなどの多くには明らかな機能がありますが、その実装はかなり簡単です。しかし、他のツールでは、その操作の原則はそれほど明白ではありません。それらを実装するための正しいまたは忠実なアルゴリズムを決定するのに行き詰まります。
あなたが私だったら、どのようなアプローチをとりますか?このような古いプログラムを処理できる逆コンパイラ/逆アセンブラはすぐに利用できますか? それとも、さまざまな入力でアルゴリズムを体系的にテストして、基になる関数を推測するなど、別のアプローチを採用しますか? さまざまなテクニックの組み合わせ?これらのプログラムの 1 つの行の場合、これらの (商用) プログラムの元の作成者はわかっており、現在では熱狂的なオープン ソースの支持者です。直接連絡して聞いてみるしかないでしょうか?私はリバース エンジニアリングの経験が特にないので、どこから始めればよいか途方に暮れています。
編集:「尋ねると受け取る」は本当にうまくいくようです。
編集 2:ソースを入手したプログラムのソース コードについては、http ://animatorpro.org を参照してください。デラックス ペイントもいいですが、ダン シルバは地球上から姿を消したようです。
java - JComponent の paint メソッドから点線を引くにはどうすればよいですか?
JComponent で点線または破線を描画する必要があります。それ、どうやったら出来るの?
.net - カスタムの「HorizontalRule」コントロールで何が問題になっていますか?
アプリケーションで使用するために、次の(非常に単純な)コントロールを作成しました(簡潔にするためにコメントを削除しました)。
免責事項:私は自分のコントロールをペイントするのは初心者です。
セパレーターに高さ1のエッチングされた長方形を提案する、Vista UXガイドラインの推奨事項に基づいて、この方法で線を引くことにしました。
静的な場合、これは問題ないように見えますが、このコントロールをウィンドウに配置してサイズを変更すると(アンカーなどを使用して)、アーティファクトが再描画されることに気付きました。クライアントの長方形の幅全体に境界線を再描画していますが、実際にはペイントされていないようです。ホリゾンタルルールのコンストラクターで、またはそれが埋め込まれている形式でDoubleBufferedを有効にしても、違いはないようです。
私は何が間違っているのですか?
アップデート:
提案に従って、base.OnPaintを最初ではなく最後に呼び出してみました。それが何を変えたのかはわかりませんし、何も変わっていないようです。
背景を描かないことは何の役にも立ちませんでした。アーティファクトはまだ発生しますが、背景色も取得されないため、代わりに水平線の下にあるものの画像が表示されました。
c# - Winformウィンドウを展開すると、破線の長方形が実線で表示されます
破線の長方形をカスタムペイントしているときにGDI+で問題が発生しました。
ウィンドウサイズを大きくしたり、上下にスクロールしたりすると、破線の長方形の垂直部分が実線の実線で表示されます。マウスを速く動かすと、ソリッドセクションがますます少なくなります。不思議なことに、水平線はこの動作を示さず、期待どおりに表示されます。
これまでのところ、2つの最適でない解決策は、との間に設定ResizeRedraw = true
または呼び出すことでした。もちろん、私が実際に描いているものはより複雑であり、これらの遅い呼び出しは流動的な経験を破壊するので、これを避けたいと思います。また、新しく表示された領域のみを無効にして無駄にしようとしました。完全な無効化のみが機能しているようです。Invalidate()
OnResize()
OnScroll()
これを解決する方法についての指針はありますか?
デモコード: