はじめまして。kodemarimanと言います。
皆さんよろしくお願いします。

早速ですが、質問です。多分高校数学レベルの問題です。

右上の座標が(x1,y1)=(200,200)、左下の座標が(x2,y2)=(0,0)の正方形を考えます。

次の手順で座標を変換して、この正方形を描画すると、斜めになった長方形になります。
1:座標系を反時計周りに30度回転します。
2:座標系をx方向に1.2倍、y方向に1.5倍偏倍します。
3:正方形を書きます。

ですが、次の手順だと斜めになった長方形でなく、菱形になってしまいます。
1:座標系をx方向に1.2倍、y方向に1.5倍編倍します。
2:座標系を反時計周りに30度回転します。
3:正方形を書きます。

これって、なぜなんでなんでしょう?

目的としては、このような座標変換を繰り返し行っても
(例えば座標を回転して偏倍して平行移動して座標を回転して偏倍して平行移動して
座標を回転して偏倍して平行移動して・・・)
いつでも長方形(正方形)が描かれるような座標変換を行いたいのですが・・・

ちなみにテストに使ってるソフトはGhostScriptといいます。
これはポストスクリプトのプログラムを書くと画像にしてくれる
便利なソフトです。
↓URL
http://www.cs.wisc.edu/~ghost/index.htm

このQ&Aに関連する最新のQ&A

A 回答 (5件)

少し不親切でした。


n は座標変換の回数、1.2^n は siegmund さんの補足にあるようにn乗のことです。

以下、No.2の回答での行列の導き方です。
まず、初期状態として座標 O(0,0)、A(200,0)、B(200,200)、C(0,200)
を頂点とする正方形OABCを考えます。

ここで、n回座標変換を行なった後OAベクトルは
長さが 1.2 の n乗倍に、また 30*n[度]= nπ/6[rad]回転します。
すなわち、OA'ベクトル
 ( 200*1.2^n*cos(nπ/6),200*1.2^n*sin(nπ/6) )
に写されます。
したがって、n回の座標変換を行なう行列をAnとして
 ┌ 200*1.2^n*cos(nπ/6) ┐    ┌200┐
 │            │ = An│  │   
 └ 200*1.2^n*sin(nπ/6) ┘    └ 0 ┘
という式が成り立ちます。

同様にしてOCベクトルがOC'ベクトル
 ( -200*1.5^n*sin(nπ/6),200*1.5^n*cos(nπ/6) )
に写されることから
 ┌ -200*1.5^n*sin(nπ/6)┐    ┌ 0 ┐
 │            │= An│  │   
 └ 200*1.5^n*cos(nπ/6)┘    └200┘
という式が成り立ちます。
これらの式から行列AnがNo.2のように決まります。

また、変換後のOA'とOC'の内積をとると0になることから
変換後の2つのベクトルは垂直になっていることがわかりますね。
さらに、変換前
 OB = OA + OC
ですから変換後のOB'ベクトルは
 OB'= OA'+ OC'
というベクトルに写されます。
よって、四角形OA'B'C'は長方形になっています。
平行移動については行列で操作できないので最後にn回分まとめて動かすしかなさそうですね。

ところで、同じ辺を1.2倍し続けるのでいいのでしょうか?

この回答への補足

いえ、目的としては同じ辺を1.2倍しつづけるのではありません。

やりたいのは、ある座標系に描いた図形を、回転と拡大縮小の座標変換を行う事で
任意の大きさに拡大縮小して、かつ任意の角度に回転させることです。
また、そうして変換した座標系の中でさらに拡大や縮小、回転を行いたいのです。

で、どーもそういう作業(ポストスクリプトでプログラムを組んでいるんですが)をしていると、途中で図形がゆがんできてしまうので
困ってしまったんですよ。(^^;
(2回目の回転と拡大縮小で、なんかゆがんでしまう)

ところで、教えていただいたこの変換行列で試したところ、やぱり長方形
じゃなくて平行四辺形になってしまいました。理屈は納得できるのですが・・・
謎です。Ghostのバグなのかしら。(でもこれも長生きのソフトだからそれはないかも)
ほかに実験できそうなツール探して試してみようかな。

補足日時:2001/07/29 09:20
    • good
    • 0

>やぱり長方形じゃなくて平行四辺形になってしまいました。


困りましたね。
こちらでは適当な n の値を代入して表示させると
長方形になっているようなのですが。

大丈夫だと思いますが誤解があるといけないので書いておきます。
下の回答での行列は n 回変換後の結果を出すだけですのでこの行列を何回も
掛けていくというものではありません。
1回ごとの結果を表示させるには n の値を1ずつふやして代入し
そのたびに表示させていくことになります。
(このあたりが望みのものとは違うかもしれません)

まだ、謎が解けていない状態ではあまり意味がないかもしれませんが
任意の倍率、回転の場合は次のようです。

k回目の操作である辺をAk倍、もう一つの辺をBk倍、回転角θkのとき
n回操作後の結果を求める行列は

  ┌ ΠAk*cos(Σθk) -ΠBk*sin(Σθk) ┐
A=│                    │
  └ ΠAk*sin(Σθk) ΠBk*cos(Σθk)  ┘

のようになります。
ただし、ΠAk=A1*A2*…*An、Σθk=θ1+θ2+…+θnです。
    • good
    • 0
この回答へのお礼

どうも、kodemarimanです。
謎は解けました。ちょっと正負の符号を間違えてました。(^^;
じっちゃんの名にかけられるほどの謎じゃなかったです。(苦笑)

で、私の目的の方ですが、教えていただいた行列式を元に、
こういう考えで解決しました。


   ┌ 1.2*cos(nπ/6) -1.5*sin(nπ/6) ┐
An=│                    │
   └ 1.2*sin(nπ/6)  1.5*cos(nπ/6) ┘

で、座標系の回転と拡大を行ったあと、再び回転をかけるまえに

   ┌ 1/1.5 0 ┐
Bn=│         │
   └ 0  1/1.2 ┘

をかけて、拡大率を1に戻します。(かなり力技ですが。(^^;)
それからまた回転、拡大を書けるという処理を続けます。

これを繰り返す事で、目的は達成する事ができました。
どうもありがとうございました。

お礼日時:2001/08/01 10:08

> 行列の計算は不可逆なのが有るんですね。

(そういえばそうだったな)

「不可逆」でなくて「非可換」という方がいいでしょう.
「不可逆」は熱力学で使われる言葉で,意味がちがいます.
それから,行列の乗法は一般に非可換です.
加法の方は A+B = B+A で可換ですけどね.

> ”^”記号は何を意味するのですか?

1.2^n は 1.2 のn乗の意味です.
    • good
    • 0

行列は一般に非可換だからです。


kodemariman さんが期待されておられるものとは違うかもしれませんが
次のような行列なら平行移動はしませんが
ある辺を1.2倍、それと垂直な辺を1.5倍し続けます。


   ┌ 1.2^n*cos(nπ/6) -1.5^n*sin(nπ/6) ┐
An=│                     │
   └ 1.2^n*sin(nπ/6) 1.5^n*cos(nπ/6)  ┘

この回答への補足

ご回答ありがとうございます。
少しわからないのですが、
この行列式ですが、”n”は座標変換の回数だと思うのですが
”^”記号は何を意味するのですか?

あと、もしよろしければこの行列がどのように導き出されるかを
教えていただきたいです。

補足日時:2001/07/27 13:46
    • good
    • 0

座標系の回転操作と偏倍操作が可換ではないからです.



回転操作の行列表現は

 ┌  cosθ sinθ┐
A=│        │
 └ -sinθ cosθ┘

偏倍の方は
 ┌a 0┐
B=│   │
 └0 b┘

です.
明らかに,AB≠BA ですね.
(sinθ=0,あるいは a=b の場合を除く)

この回答への補足

さっそくの回答ありがとうございます。

行列の計算は不可逆なのが有るんですね。(そういえばそうだったな)
そうすると、一度編倍または回転をかけちゃうと、
それ以上編倍や回転はできないのかな?

もしやるとしたら、編倍したXY座標サイズをのを元のサイズに戻して
それからまた回転、編倍しなくちゃいけないのかなあ。うーむ。

補足日時:2001/07/27 13:55
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「頭悪いね」「バカだね」 どっちがよりムカつく?

こんにちは、

単純な質問です。

「お前、頭悪いな」

「お前バカだな」

どっちがより言われたらムカつきますか?

Aベストアンサー

どっちもそれなりにムカつきますけど・・・「頭悪いな」かな~

そう言う事を他人に平気で言う奴ほど、バカで頭の悪い人はいないと思いますけど・・・ね?
我がふりなおせよ~ってな感じです。

でもやっぱり傷つくな~否定はしないけど(苦笑)

Q数学の問題について質問です。 問題 :放物線y=x^2+xをx軸方向にa,y軸方向にa^2だけ平行移

数学の問題について質問です。 問題
:放物線y=x^2+xをx軸方向にa,y軸方向にa^2だけ平行移動したら、点(0,3)を通る放物線になった,このときaの値を求めよ。

解答
:y-a^2=(x-a)^2+x-a
これが、点(0,3)を通るから
3-a^2=(-a)^2-a
⇔(a+1)(2a-3)=0

∴a=-1,3/2

ここで質問です。
y-a^2=(x-a)^2+x-aの式を導き出すには、どこに着目すれば導きだせますか?
解答よろしくお願いします。

Aベストアンサー

y-a^2=(x-a)^2+x-a の意味ですが、
y=x^2+x の元の放物線に対し
x軸方向にa動かす事が、xに(x-a)を代入することを意味しています
また、y軸方向にa^2を動かすことが、yに(y-a^2)を代入することをいみしています。

放物線の2次方程式で基本形というのを習ったと思いますが、
基本形は
y=(x-a)^2-b で(a,b)がその頂点の座標を表します。
それを応用したような考え方で、与えられた放物線の式、y=x^2+x をあまり弄らずに、
x軸方向、y軸方向の移動のみで考えた計算方法だと思います。

Q仕事が遅い、頭悪い、力仕事できない 不器用すぎるこんなパートメリットありますか?

仕事が遅い、頭悪い、力仕事できない
不器用すぎるこんなパートメリットありますか?

Aベストアンサー

仕事が早い、頭が良い、力仕事もできる
器用すぎるこんなパートに比べたら、見劣りしますが、
居ないよりはずいぶんましだと思いますよ。

Qある放物線をX軸方向に-1、Y軸方向に3だけ平行移動すると放物線Y=2X^2-6X+7になる。もとの

ある放物線をX軸方向に-1、Y軸方向に3だけ平行移動すると放物線Y=2X^2-6X+7になる。もとの放物線の方程式を求めよ
この問題が分かりません。教えてください!

Aベストアンサー

No.2 おっとと、こっちもミスした。足し算間違えた。

y=2x² - 10x + 12

Qこうゆう考えの人って頭悪いと思わないですか?

こうゆう考えの人って頭悪いと思わないですか?
CMとかで嫌いなタレント出てるからとかむかつくからという理由で商品買わない人
僕には理解出来ないですが何か?
商品なんて関係ないしあれですか?坊主にくけりゃ袈裟憎いって?
でも向こうもそうゆう考えもつ人にはかってもらいたくないからいいかなと思うけど

Aベストアンサー

なるほど、そういう考えもできますか!

広告というのは、その商品なりサービスが、一番いい方法で訴求できて、消費者に認知・浸透してアクションを起こしてもらうことが、最終的な目的ですよね。

そしてそのためには、(関係者のしがらみはともかくとして)それにマッチする、イメージを伝えられるに相応しいタレントを起用するのが普通です。
ですから、広告でそのタレントが出ることは、その商品なりサービスのイメージを背負っているということになります。

なので、質問者さまがおっしゃっている「タレントが嫌いだから商品を買わない」という人が出てきても、何らおかしくありません。
別に頭が悪いわけではありません。
よく、不祥事を起こしたタレントが出た時、そのタレントのCMを一斉に引き上げますね。それによって商品イメージが下がることを恐れてのことです。

Q放物線 y=x^2-2x+2 をx軸方向に1、y軸方向に ? だけ平行移動して得られる放物線の頂点

放物線

y=x^2-2x+2
をx軸方向に1、y軸方向に ? だけ平行移動して得られる放物線の頂点は、直線y=3x上にある。
この問題の?の解き方がわかりません、教えてくださる方よろしくお願いします(^_)
?=5です

Aベストアンサー

y=x^2-2x+2
基本形に直します
y=(x-1)^2+1
頂点の座標が(1,1)というのが判ります。
x軸方向に1移動なので
y=(x-2)^2+α
頂点が直線y=3x上にあるので、
y=3×2=6なので、α=6になります。
放物線の基本形の式は
y=(x-2)^2+6
となり、最初の基本形の式
y=(x-1)^2+1
と比較すると、x軸方向に1、y軸方向に5、頂点が移動しているのが判ります。

放物線の式を基本形に直すコツを掴むのが、問題のコツですね。

Qわざわざナイフからフォークに利き手を持ち替えないと食事出来ない人って、頭悪いの?躾がなってないの?

わざわざナイフからフォークに利き手を持ち替えないと食事出来ない人って、頭悪いの?躾がなってないの?



「俺、右利きだから」とかいう理由でフォークをいちいち右手に持ち替えないと食べられない育ちの悪いクソとは食事したくない。



右利きならナイフが右手、フォークが左手だろ。子どもでも知ってるわ。

それが出来ない成人とか脳腐ってるでしょ?


こんな腐った食事の仕方してる人って親に食事の仕方すら教わってないからこんな気持ち悪いことするんでしょうか?

それとも教わっても理解できないくらいに頭が悪いからなのか?

Aベストアンサー

私はオジサンです。
両親は2人とも地方出身です。イギリスではありません。日本です。
ナイフとフォークを使う食事なんて、した事がないし、必要もなく育ちました。
質問者様とは生きてる世界が違うようですね(笑)。
それとも、わざと炎上させるように挑発的に書いているのでしょうか?
質問者様は、カップ麺って、食べた事ないんでしょうね。
質問者様は、1日の食事代1000円未満なんて、経験ないんでしょうね。
世の中、あなたのような人ばかりではないのですよ。
自身の価値観だけで、相手を否定するのは、テーブルマナーより酷いマナーですよ。

Q座標(x,y)から座標(x2,y2)を頂点としてとおり座標(x3,y3)と交わる放物線?

現在プログラムを作成しているのですが、とあるグラフを表示して
欲しいと言われ困っています。

ニーズは 任意の座標(x,y)と座標(x3,y3)を放物線で記すこと。
ただし、この放物線はxからx3の間隔の8:2の場所に頂点(x2,y2)が
あること。 です。

すなわち・・・
(x,y)が(0,50)で(x3,y3)が(100,25)なら 頂点(x2,y2)は(80,?)に
あるグラフです。

そもそも、こんなグラフを式でかけるんでしょうか?
かけるとしたらどんな式で書けばいいのか教えてください。

条件としては
必ず x<=x3 , y>=y3 , xとx3の間隔は最低100です。

いろいろ参考書とか見てみたのですが、ギブアップです。
お助けください。

Aベストアンサー

>(x,y)が(0,50)で(x3,y3)が(100,25)なら 頂点(x2,y2)は(80,?)にあるグラフです。......

頂点とは、放物線とその対称軸との交点だとしましょう。
また、放物線の回転を許容します。

試している暇が無いので、筋書きだけ。

(1) (0,50) と (100,25) を結ぶ線分に、その中点で直交する直線 Lc を引く。
(2) 直線 Lc と直線 x=80 の交点を求める。そこを放物線の頂点 Pc とする。(交点が存在しないことあり)
(3) (0,50), (100,25), Pc を通る放物線が所望の放物線。

あとはフォローして。

Q30代なかばで派遣してます。頭悪いし、毎日サービス残業してもいいんだけど、あまり夜遅くまですると寝坊

30代なかばで派遣してます。頭悪いし、毎日サービス残業してもいいんだけど、あまり夜遅くまですると寝坊してしまうし、このまま派遣続けようかと考えてます。こんな人生もありですかねぇ?子供好きだけど、子孫も残さないつもりです。

Aベストアンサー

将来的な計画などを考えても、自分で良しと思えるならありだと思います。

ただ、生涯賃金にして二倍以上の差がつくと言われている非正規と正規では
老後の生活や、中年を過ぎる辺りからの生活に差が出てきます。
周囲との比較というのは自分で気を向ける以上に気になるものです。

また、実生活面でも万が一のことがあった場合など
様々な場面で不利な状況に立たされる可能性も考えるべきです。

そういった点から、生涯派遣労働というのは
今の社会、制度の状態ではお勧めしたいとは思えません。
ただ、正規労働よりもストレスが少ない場合があることも確かです。
ライフスタイルやワークスタイルは個人が選んでよいものですから
そういったリスクを考えてもなお、自分に合っている
もしくは、そういったスタイルが良いと思うのであれば
一つの生き方だと思います。

Q数学1の関数の質問です!y=x^2のグラフをy軸方向に1だけ平行移動した場合なぜy=x^2+1に

数学1の関数の質問です!

y=x^2のグラフをy軸方向に1だけ平行移動した場合なぜy=x^2+1になるのか?
y=x^2のグラフをx軸方向に2だけ平行移動した場所なぜy=(x-2)^2になるのか?

それら2つの疑問に関して解説して頂けませんでしょうか?

特にy=x^2のグラフをx軸方向に2だけ平行移動した場合なぜy=(x+2)^2にならずy=(x-2)^2になるのかチンプンカンプンです。

それでは宜しくお願い致します!

Aベストアンサー

式で書いても難しそうだから、絵で説明する。
y=x^2のグラフの意味は、x=1の時はy=1、x=2の時はy=2^2=4
3の時は3^3=9・・・となるから、そういう(x,y)の点を書いて滑らかに繋いだもの、と言う意味。

(1)y=x^2のグラフをy軸方向に1だけ平行移動した場合
下の図の上半分。
右が、左のグラフをy軸方向に1だけすらした(平行移動した)図
右の赤線は青線に2足した長さ。
青線は左の図からx^2だから、足すとx^2+2。


(2)y=x^2のグラフをx軸方向に2だけ平行移動
下の図の下半分
グラフをx方向に2ずらすと、右側になる。
でも良~く見ると、左側の座標の方を左へ2個動かしても同じになる。
だから、左の座標xをいつも2個左へ動かせば右になる。
左はx^2なんだから、xからいつも2を引いて、(x-2)^2。


人気Q&Aランキング