問題タブ [nsaffinetransform]

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.

0 投票する
2 に答える
17752 参照

objective-c - NSView での画像の描画

現時点では、画像を読み込んで描画し、理論的にはズームと回転を可能にする単純な Obj C プログラムがあります。私は NSAffineTranslations を使用しています。

画像を左上にロックしたいので (左下の PS/PDF 標準ではなく)、isFlipped を使用して [afTrans scaleXBy:1.0 yBy:-1.0]; を呼び出しています。

問題は、何らかの理由で、最初に drawRect が呼び出された後、変換が行われないことです。

画像を読み込むと、画像が表示され、正しく表示されます。ウィンドウのサイズを変更すると (drawRect を呼び出します)、画像は描画されますが、上下逆になります。これは、変換が有効にならなかったことを意味します。2回目以降のデータに違いは見られません。

これは、コードの簡素化されたバージョンです。

ETA: 関連するかもしれないいくつかのコードを次に示します。

0 投票する
3 に答える
4024 参照

objective-c - NSAffineTransformを使用した場合と使用しない場合のNSImageの回転

NSViewのサブクラスにNSImageが描画されています。前の質問で、私はそれを左上隅に直立させるのを手伝ってくれました。ここで、画像を回転できるようにしたいと思います。回転変数%4をインクリメントするボタンがあり、これに-90を掛けて回転角を求めます。次に、NSAffineTransformを使用して画像を回転し、画面に変換し直します。ただし、期待どおりに機能していないようです。私には2つの問題があります。

1)回転すると、前のフレームになかった領域にある画像の部分が正しく描画されます。ただし、以前そこにあったポーションは元の画像のままです。これは、数回転した後、元の直立した画像の正方形があり、次に回転画像の下または左に長方形があることを意味します。

2)ウィンドウのサイズを変更すると、画像は元の直立した向きで(本来あるべきように)再描画されます。

基本的に、NSAffineTransformは私が思っているようには機能しないという結論に達しました。画像を回転(および平行移動)する他の方法はありますか?ありがとう

大きなコードチャンク:(「WORKS」と「endworks」の間のコードは、画像を描画するための作業コードです。これは私の前の質問からのものです)。

[古いコードが削除され、下のコードが新しいコードに置き換えられました]

ありがとう

編集:もう少し調査すると、NSAffineTtransformを実行する代わりに、ビューを回転できることがわかりました。これはうまくいくようです。ただし、翻訳を正しく機能させることができません。以下の新しいコード(スペースを節約するために元のコードが削除されました)

0 投票する
1 に答える
188 参照

cocoa - nscellを回転させる方法

NSLevelIndicatorCellのサブクラスを作成していて、それを垂直に描画したいと思います。これは機能しません、私は何を間違っているのですか?

0 投票する
0 に答える
311 参照

cocoa - NSAffineTransform のメモリ不足

NSAffineTransform を使用して NSImage を回転/反映していますが、大きな画像を使用するとエラーが発生します:

ここで変換している画像は、4110px x 2735 で 6,998,487 バイトです。NSAffineTransform は、この変換を行うためにこれほど多くのメモリが本当に必要ですか、それともどこかで間違っていますか? 私のローテーションコードは次のとおりです。

プロジェクトで ARC を使用しています。前もって感謝します、ベン

0 投票する
1 に答える
1213 参照

cocoa - NSImage を変換およびスケーリングする方法は?

これまで、ユーザーが画像を NSImageView にドラッグ アンド ドロップできるアプリケーションを作成しました。ただし、画像をクリックしてマウスボタンを押したままにして、その場所を移動するだけで、これらの画像を移動できるようにしたいと考えています。

画像を設定した後、NSImageView を操作して変換/スケーリングするにはどうすればよいですか? それは可能ですか?NSAffineTransform について読んだことがありますが、画像自体を作成する前に画像を移動しているようです。キャンバスに既に画像があり、画像をクリックして押したままマウスで移動したいだけです。誰か助けてください!

0 投票する
1 に答える
109 参照

macos - isFlipped YESを使用したカスタムビューでの奇妙なサイズ変更

サブビューを適切に動作させるのに苦労しています。

自動レイアウトを使用しています。私のメインウィンドウはNSSplitView. 分割ビューのビューの 1 つは、私が設定したカスタム ビューです。

このビューに追加されたサブビューが左上に表示されます。サブビューはスーパービューよりもはるかに小さいため、下部にスペースが残っています。ウィンドウ(およびスーパービュー)のサイズを変更すると、問題が発生します。以下のように、サブビューがビューの外に移動します。最初の図は、サブビューの上部がスーパービューの上部にうまく配置されていることを示しています。

ここに画像の説明を入力

ウィンドウのサイズを変更すると、上部に次のように表示されます。

ここに画像の説明を入力

これは起こらないはずです。どちらかといえば、サブビューを下部でクリップする必要があります。サブビューの左上は、常にスーパービューの左上にある必要があります。

私はどこかで間違いを犯したと確信しています - 誰かがこの動作を認識していますか? 残念ながら、私は少し前に物事を台無しにしてしまい、どこを見ればよいのかわかりません。どんな助けでも大歓迎です!

0 投票する
1 に答える
112 参照

objective-c - NSAffineTransform は Mac OS X 10.11 で異なる座標系を持っていますか?

私のプロジェクトは Mac OSX 10.10/10.9 では問題なく動作しますが、10.11 では次のコードを使用すると正しく動作しません。

これを変更すると [transform translateXBy:-bound.origin.x yBy:-bound.origin.y];

[transform translateXBy:bound.origin.x yBy:bound.origin.y];

アプリケーションは OSX 10.11 では正しく動作しますが、OSX 10.10/10.9 では正しく動作しません...

理由はわかりませんが、最新の Mac OS X 10.11 では NSAffineTransform の座標系が異なるのですか? この問題を解決して、アプリケーションを 10.10/9 と 10.11 の両方に対応させるにはどうすればよいですか? ありがとう。