• 締切済み

正円の中にある点のx軸とy軸の割合を計算する方法

スマートフォン向けゲームプログラムの一環として、画面上でアナログスティックを操作できるプログラムを試作しています。ここでcx,cyを中心とする円の中にある点における、x軸とy軸の比率を算出したいのですがどのようにすればよいでしょうか。たとえば、参考画像のように、円周上にある場合はsx,syのいずれかは必ず最大、もしくは最小値をとります。

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

  • f272
  • ベストアンサー率46% (8010/17118)
回答No.1

何を計算したいのかがぜんぜんわからん。

Tank2005
質問者

補足

赤い点は、ゲームコントローラーにおけるスティックの位置を示します。一般的なゲームコントローラーであれば左に傾ければ(x=-127,y=0)、右上に傾ければ(x=127,y=127)が返ります。赤い点の位置に応じたxとyを計算したいのです。

関連するQ&A

  • 3点を通る放物線の求め方を教えてください。

    3点を通る放物線の求め方を教えてください。 (x1,y1), (x2,y2), (x3,y3)をこの順番で通り、頂点を(x2,y2)とする放物線を考えます。 3点が直線上になければ、ただ一つの放物線が定まると思います。 x=x2 を対称軸と仮定すれば、 a(x-x2)^2+y-y2=0 が放物線の式になります。 回転を考慮し、c^2+s^2=1 の変数を加えて書きなおせば、 a(cx-sy-cx2+sy2)^2+sx+cy-sx2-cy2=0 となりますが、X=x-x2, Y=y-y2 と置けば、 a(cX-sY)^2+sX+cY=0 となります。 この先、x1, y1 などを代入し、連立方程式にして解けば…と思いましたが上手くいきませんでした。

  • 連立方程式の解き方

    円弧上の2点と半径から中心点を求める式を (sx-cx)^2+(sy-cy)^2=r^2 (ex-cx)^2+(ey-cy)^2=r^2 とした時、 cx = cy = の式にしたいのですが、どうしても途中で間違えてしまうのか 答えがおかしくなってしまいます。 解答だけでも構いませんが、途中の式も教えて頂けると助かります。 宜しくお願い致します。

  • VBによる回帰直線のプログラム

    VB6を本を見ながら勉強していますが、どの本にもフォーム上にグラフを表示するものばかりでピクチャボックスに回帰直線y=ax+bの直線を描けるようにはどうしたらいいのかプログラムに困っています。どなたか分かる方いましたらよろしくお願いします。ちなみにプログラムはこのようになっています; Private Sub Command1_Click() Dim c(10) As Double Dim d(10) As Double Dim cx As Integer, cy As Integer, lx As Integer, ly As Integer '----------------------------------------------------------------- 'ピクチャボックスの初期化 Picture1.Cls 'グラフの位置 cx = 60 cy = 320 lx = 300 ly = 300 'グラフ枠を描画 Picture1.FillColor = QBColor(15) Picture1.Line (cx, cy)-(cx + lx, cy - ly), , B '縦軸の目盛り Picture1.DrawStyle = 2 '線の種類 点線 For i = 0 To 5 Picture1.Line (cx, cy - 60 * i)-(cx + lx, cy - 60 * i) Picture1.CurrentX = cx - 25 'ラベルを表示する場所の指定 Picture1.CurrentY = cy - 60 * i '横軸を描画 Picture1.Print Format(i) 'ラベル出力位置を設定 '(i*縦軸の目盛りの倍数 現在は10倍 Next i '横軸の目盛り For i = 0 To 5 Picture1.Line (cx + 60 * i, cy)-(cx + 60 * i, cy - ly) Picture1.CurrentX = cx + 60 * i Picture1.CurrentY = cy + 5 Picture1.Print Format(i) Next i '------------------------------------------------------------------------ Dim n As Integer 'n:データ数 n = Val(Text3.Text) For i = 0 To n - 1 c(i) = Val(Text1(i).Text) d(i) = Val(Text2(i).Text) Next i 'データを○印でプロット For i = 0 To n - 1 Picture1.Circle (cx + 60 * c(i), cy - 60 * d(i)), 3, QBColor(0) Next i 'ここまで成功---------------------------------------------------------------------- 'xに関する平均値と標準偏差の計算プログラム Dim sx As Double, sxx As Double, avx As Double, sdx As Double Dim x(10) As Integer For i = 0 To n - 1 x(i + 1) = c(i) Next i sx = 0 sxx = 0 For i = 1 To n sx = sx + x(i) sxx = sxx + x(i) * x(i) Next i avx = sx / n sdx = Sqr((sxx - n * avx * avx) / n) 'yに関する平均値と標準偏差の計算プログラム Dim sy As Double, syy As Double, svy As Double, sdy As Double Dim y(10) As Double 'インデックスが範囲を超えているのエラーの解決 10を代入 For i = 0 To n - 1 y(i + 1) = d(i) Next i sy = 0 syy = 0 For i = 1 To n sy = sy + y(i) syy = syy + y(i) * y(i) Next i avy = sy / n sdy = Sqr((syy - n * avy * avy) / n) '-------------------------------------------------------------------------------------- '回帰直線y=ax+bを描く End Sub

  • この計算の意味を教えて下さい。

    いつもはプログラムのカテゴリに投稿させてもらってるのですが、バリバリの文系でして、よくプログラム中の計算で行き止まってしまいます。 今回は、この計算の説明をしていただけないでしょうか? 大きい画像を小さい画像に縦横の比率を変えずにリサイズする場合の問題なのですが、 リサイズするサイズをはじめに定義してあります。 横幅 WIDTH = 200 高さ HEIGHT = 160 です。 元画像の横幅 sx 元画像の高さ sy もし横幅が高さより大きかった場合は 横幅は WIDTH にして 高さは WIDTH * sy / sx となっています。 逆に高さの方が大きかった場合は 高さを HEIGHT にして 横幅を HEIGHT * sx /sy で求めています。 何故このような計算になるのか説明をしていただけないでしょうか? 説明がわかりにくかったらごめんなさい。 よろしくお願いいたします。

  • 2元2次連立方程式の解き方

    とある2元2次方程式を解くプログラムを作成したいと 思っています。 楕円の長径 (a) 楕円の短径 (b) 楕円の軌道上の座標1 (x1, y1) 楕円の軌道上の座標2 (x2, y2) 楕円の長径の軸の角度は 0° という情報が分かっている場合に (x1 - cx)^2 / a^2 + (y1 - cy)^2 / b^2 = 1 (x2 - cx)^2 / a^2 + (y2 - cy)^2 / b^2 = 1 という楕円の方程式を使い、 楕円の中心点(cx,cy)を求めたいのですが、 数学に疎く、中々解くことができません。 例えば 片方の "cx = ~" という式は解の公式を使用して 何とか形にはなるのですが、それをもう一方の連立式に代入 して、もう片方の "cy = ~" を求める式を作れません。 どういったものとなるのでしょうか。 どなたか、ご教授の程よろしくお願いいたします。

  • ばらばらの測定座標(X,Y)の中から、2点を基準軸(0,0)と(0,y)にする方法

    大学の実験で10点の座標を簡易工具顕微鏡で測定したのですが、 そのうちの2点を(0,0)と(0,y)にして基準軸にし、 その時の他の点の座標をしりたいと思っています。 例えば、CADのソフトで、全部の座標を入力し、平行移動と回転移動をすると、自動で他の点の座標が測定されるものとか。ただ、CADの使い方知らないし、ソフトもないというレベルです。(ICAD?というのは、あるらしいですが、使えません) 教えてください!

  • このサンプル(画像をY軸回転させる)コードの説明をお願いします。

    javascriptに興味がありネットでサンプルを見ながら使い方を 勉強しているものです。 ネットで以下のサンプルをみつけコードを解釈しようとしたのですが よくわかりません。はじめから多少コメントがついてるのですが 数字の(1)~(8)の部分がわかりませんでした。 これはjavascriptというより数学的な意味を把握できないため 分からないと思うんですが解説をして頂けたらと思い質問させて頂きます。 <HEAD><TITLE>画像をY軸回転させる</TITLE> <SCRIPT language=JavaScript><!-- iList = ["img0","img1","img2","img3","img4","img5"]; cx = 150; // 回転の中心X座標 cy = 100; // 回転の中心Y座標 cnt = 0; rx = 140; // 回転半径(横) ry = 70; // 回転半径(縦) function rotZIMG() { for (i=0; i<iList.length; i++) { n = (i * (360 / iList.length) + cnt++) * Math.PI / 180; //(1)? y = cy - Math.cos(n) * ry;//(2)? z = 100 - Math.cos(n) * 50; // (3)? document.images[iList[i]].style.pixelLeft = cx + Math.sin(n) * rx;//(4)? document.images[iList[i]].style.pixelTop = y;//(5)? document.images[iList[i]].style.zIndex = z;//(6)? document.images[iList[i]].style.width = z / 1.5;//(7)? document.images[iList[i]].style.height = z / 2;//(8)? } } // --></SCRIPT> </HEAD> <BODY onload="setInterval('rotZIMG()',100)"> <IMG style="POSITION: absolute" src="0.gif" name=img0> <IMG style="POSITION: absolute" src="1.gif" name=img1> <IMG style="POSITION: absolute" src="2.gif" name=img2> <IMG style="POSITION: absolute" src="3.gif" name=img3> <IMG style="POSITION: absolute" src="4.gif" name=img4> <IMG style="POSITION: absolute" src="5.gif" name=img5>  あと、こういった図形を描画するプログラムは大変面白いと思うのですが 文系人間のためsin cos などがでてくると分かりません。 もう一度基礎ぐらいは勉強してみたい気持ちがあるので どういった分野(例えば高校数学の三角関数とか)の勉強をすればいいのかなども教えていただければうれしいです。 宜しくお願いします。

  • x^+(y-√3)^2=4 をx軸にまわしてできる

    x^+(y-√3)^2=4 をx軸にまわしてできる体積の求め方を教えてください!

  • 大量データのグラフ化

    エクセルで開けないCSV形式等の大量データを印刷可能な波形グラフにして、例えば2軸のカーソルで選択した範囲の統計量(最大、最小、平均、標準偏差など)を算出する(できるだけ価格が安い)業務用ソフトを探しています。ご存知の方いれば教えてください。宜しくお願いします。

  • ペイントで正円に軸を入れたい

    ペイントで正円に軸を入れるにはどうすればいいですか? 水平方向に中心軸を書きたいんですがヘルプに項目も見付からず出来ません・・・

専門家に質問してみよう