問題タブ [affinetransform]
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.
java - Java-AffineTransform API:画像を最大300 * 100ピクセルにスケーリングしますか?
簡単なスケーリングを行うことは知っていますが、画像を最大300 * 100ピクセルにスケーリングするにはどうすればよいですか?AffineTransform APIクラスを検索しましたが、このためのメソッドが見つかりませんでした。
事前にthx
java - アフィン変換は実際にJavaでどのように機能しますか?
私はJavaプロジェクトで文字列を回転させるためにアフィン変換を使用していますが、まだ経験豊富なプログラマーではないため、一見小さなタスクを実行するのに長い時間がかかりました。文字列を回転させるため。
今、私はついにそれが私が望むほど正確に行われていないことを除いて、私が望んでいたように多かれ少なかれ動作するようになりました...まだ。
多くの試行錯誤とアフィン変換の説明を読んだので、それが実際に何をするのかまだよくわかりません。現時点で私が知っていると思うのは、文字列を取得し、文字列の中心(または回転させたい点)を定義することですが、行列はどこから入りますか?(どうやら私はそのheheを知りません)
誰かがアフィン変換がどのように機能するか、言い換えればjava docを説明してくれませんか?多分それは私の実装を微調整するのを助けることができますそしてまた、私は本当に知りたいです:)
前もって感謝します。
java - アフィン変換とは?
「Beginning Java Game Programming 2/e」を読んでいますが、この本では AffineTransform の使用が非常に強調されています。
1 つだけ問題があります。それが何であるか、何をするか、および AffineTransform の目的がまったく説明されていません。
私はいくつかのグーグル検索を行いましたが、それらは私に行列数学を示しているだけです...誰かが私を正しい方向に向けることができますか?
iphone - 自動回転は、iPhoneの回転したビューを歪めます
ビューベースのテンプレートを使用してアプリを作成し、shouldAutorotateToInterfaceOrientationでYESを返し、自動回転をサポートします。次に、正方形のtestView_オブジェクト(デフォルトの自動サイズ変更設定)を追加し、初期化時に回転させます。
これで、iPhoneを回転させるたびに、testView_が歪んでしまいます。その理由とその修正方法は何ですか?testView_の幅と高さは、自動サイズ変更すべきではありませんが、iPhoneを回転させるたびに変更されます(これは、testView_が最初に回転した場合にのみ発生します)。
2d - 複数のアフィン変換を、あたかも変換前の空間で指定されたかのように組み合わせる方法
各変換を使用して連続して形状を操作するのと同じ効果が得られるように、アフィン変換を組み合わせる方法を探しています。問題は、単純に変換を連結すると、連続する各変換の効果が既存の変換の座標空間で解釈されることです。
たとえば、原点 (-50、-50、100、100) の周りの正方形を考えてみましょう。回転させてから、100px下に翻訳します。変換して回転させてから平行移動すると、平行移動は回転された座標で解釈されます。代わりに、形状自体を変換して回転させ、その形状を再度変換して平行移動すると、両方の平行移動が「通常の」非平行平面で解釈され、必要なものが得られます。
問題は、私がやっていることのために多くの変換が行われる可能性があり、それぞれが通常の座標平面で解釈される必要があることですが、変換のスタックを保存したくないし、単純に形状を操作し続けることもできません、元の開始形状から最終的な変換された形状をいつでも作成できるようにする必要があるためです。
この単純な例では、回転の前に平行移動を行った場合に同じ結果が得られることは承知していますが、それは要点がありません。私は連続するスケール、移動、および回転変換の任意のセットを扱っているので、単純にそれらを特定の順序に並べるだけではうまくいきません。
変換を連結する前に新しい変換を変更し、既存の変換を修正して、新しい変換が適用されたかのように見えるような方法で変換を連結する方法があるはずだと私は考えています。変換されていない座標平面を参照していました。たとえば、上記の例で (0,100) の代わりに (70.7, 70.7) で変換すると、結果は同等になります。一般的に、新しい変換を変更して正しく機能させる方法を理解するための数学が何であるかを理解できないようです。
読んでくれてありがとう - これが理にかなっていることを願っています. スクリーンショットを作成した例のソースは次のとおりです。
(私は Java2D を使用していますが、ここでは言語や 2D ライブラリーはそれほど重要ではないと思います。)
math - レイトレーシングにおける3Dアフィン変換の問題
全て、
シーン内のさまざまなオブジェクトの熱伝達特性を計算するために、従来とは異なるレイトレーサーを作成しています。このレイトレーサーでは、ランダムな光線がプリミティブオブジェクトの表面からシーンに発射され、交差をチェックします。
この特定のアルゴリズムでは、各光線をプリミティブ空間で展開し、ソースオブジェクトによってワールド空間にアフィン変換し、その後、シーン内の他のオブジェクトのプリミティブ空間にアフィン変換して交差をチェックする必要があります。
たとえば、オブジェクトを[2 2 1]でスケーリングするなど、異方性スケールを実行するまでは、すべて問題ありません(等方性スケールは問題ありません)。これは、私が光線の指向性成分を正しく変換していないと私に信じさせます。現在、方向成分にソースオブジェクトの逆変換行列の転置を掛けて光線の方向をプリミティブ空間からワールド空間に変換し、次に宛先オブジェクトの転置を掛けて光線をワールド空間から各プリミティブ空間に変換します。マトリックス。
また、ソースプリミティブの変換行列を乗算してプリミティブからワールド空間に移動し、宛先の逆変換を乗算してワールド空間からプリミティブ空間に移動しようとしましたが、失敗しました。
プリミティブオブジェクトの表面から(ランダムな点でランダムな方向に)発射された光線は、「通常の」レイトレーシングの表面法線と同じ方法で変換する必要があると思いますが、確かではありません。
私の方法論の欠陥が何であるかを知っている専門家はいますか?さらに情報が必要かどうかお気軽にお問い合わせください。
このレイトレーサーの基本的なアルゴリズムは次のとおりです。
うまくいけば、質問をクリアするために例を見てみましょう。z軸(単位半径と高さ)に沿って伸びる円柱と、内径7と外径8のxy平面にある環があるとします。xとyの係数6で円柱をスケーリングします。方向(z方向ではない)なので、私のアフィン変換行列は次のようになります。
ここで、円柱sの表面にランダムな開始点があり、円柱cの表面からランダムな方向に離れて光線r(os)= s+ctを与える光線があるとします。
この光線をプリミティブ(オブジェクト)空間からワールド空間に変換してから、シーン内の他のオブジェクト(環)との交差をテストしたいと思います。
最初の質問は、M(円柱)またはM ^ -1(円柱)を使用して、光線r(os)を世界空間r(ws)に変換する正しい方法は何ですか。
2番目の質問は、光線r(ws)をワールド空間からオブジェクト空間に変換し、M(環)とM ^ -1(環)を使用して他のオブジェクトとの交差をチェックする正しい方法は何ですか。
いくつかの追加の背景情報:
このアプリケーションは、N個のオブジェクト間の放射熱伝達を計算するためのものです。光線はオブジェクト上のランダムな点から発射され、その方向はランダムな点で表面法線に向けられた半球分布内にあるようにランダムに選択されます。
これが私の問題の視覚化です。最初に生成されたときの光線の方向分布:
変換行列Mを使用して世界座標に変換を適用すると、次のようになります。
逆変換行列M^-1を使用して世界座標に変換を適用すると
java - AffineTransform マウスが 90 度で回転スタッターを目指している
編集:ああ!!!!! できます!!!ある時点で修正されたようですが、間違った HTML ファイルが開いていたため、間違ったコードが実行されていました。私はばかだと感じます、それは明らかだったはずです。
でもありがとう!!!
実際にこのようなものでいくつかの助けを得るのはとても素晴らしいです. 他の場所で助けを求めたり、先生に尋ねたりすると、通常は無視されるか、役に立たないアドバイスを受けます。(編集終わり)
Java クラスで最終プロジェクトのゲームを作成しています。AffineTransform を使用して動作するようにマウスを向けましたが、プレイヤー オブジェクトが 90 度 (またはその倍数) 回転するたびに、この奇妙なスタッター動作が発生します。特に関心のあるコードはheresです。
誰かがこれを修正する方法を理解するのを手伝ってもらえますか? 私のプロジェクトは明日締め切りなので、時間に余裕があります。ここに私が使用する画像があります
コードはこちら。
java - 画像を回転すると破損する
左右に 90 度回転して画像を作成しようとしています。
ただし、何らかの理由で、このプロセスの出力は破損します。
ここに私のコードがあります
:
オリジナル:
回転:
java - Java でスケーリングされた Shape の新しい高さを取得する方法
次のように、特定のポイントの形状をスケーリングしています。
で新しい高さを取得しようとするとshape.getHeight()
、初期の高さが得られます
c# - cvTransform と cvGetAffineTransform openCv を使用して長方形のサイズを変更します
私はマルチスケール画像を扱っています.3つのサイズ:オリジナル、ハーフ、ダブル私はそれらのそれぞれから個別に連結成分を抽出し、いくつかの計算を行います
最後に、ハーフ スケールとダブル スケールの接続コンポーネントの境界四角形を、元の画像の元の位置とサイズにマッピングしたいと考えています。
境界矩形のサイズ変更と再配置の私のコードは次のとおりです
dst ポイントを reszied して再配置することになっていますが、残念ながら同じポイントが再び返されます。getAffineTransform は単位行列を返すため、問題があると思います。
助言がありますか ??または、アフィン変換を使用せずにやりたいことを行う別の方法はありますか
前もって感謝します