• ベストアンサー

2 点を通る直線から延長した先の座標の計算方法

起点Aが(x10, y15)、中継点Bが(x25, y35)を通る直線があり、 その延長線上に終点Cがあるとします。 終点CのX座標が50である時、Y座標を求める計算方法を教えて欲しいです。 ExcelのVBAでプログラムしたいので、 数学的な特殊記号は用いない計算式でお願いします。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • masnoske
  • ベストアンサー率35% (67/190)
回答No.6

2点 ABを通る直線 y = a * x + b を求めるだけだと思うのですが. yA = a * xA + b・・・(1) yB = a * xB + b・・・(2) (1) - (2) から yA - yB = a * (xA - xB) a = (yA - yB) / (xA - xB)・・・(3) (3)を(1)に代入 yA = (yA - yB) / (xA - xB) * xA + b b = yA - (yA - yB) / (xA - xB) * xA ここからが VBA xA = 10 : yA = 15 xB = 25 : yB = 35 a = (yA - yB) / (xA - xB) b = yA - (yA - yB) / (xA - xB) * xA xC = 50 yC = a * xC + b MsgBox yC

その他の回答 (5)

  • ere_Elba
  • ベストアンサー率52% (9/17)
回答No.5

A B (1 x y) 2 10 15 3 25 35 4 50 [このセルに以下の函数を入力する] 入力する函数は =INDEX(LINEST(B2:B3,A2:A3,TRUE),1)*(A4-A2)+B2

  • tarou1916
  • ベストアンサー率36% (101/275)
回答No.4

早合点したかな。 x10,y15、x25, y35が変数の場合も示しておきます。 Y=a・X+b において、 a=(y35-y15)/(x25-x10) b=y15-a・x10 となる。 よって、 終点CのX座標が50である時、Y座標は Y=a・50+b から求めることができます。

  • tarou1916
  • ベストアンサー率36% (101/275)
回答No.3

ExcelのVBAでプログラムしたいことを前提に考えます。 まず、質問の内容から Y=a ・X+b ・・・(1) の一次式を考えます。 なお、a,bは定数で、a ・X は a かけるX を表します。 式(1)において 起点Aでは、X=10,Y=15を代入すると 15=a・10+b・・・(2) となります。 中継点BではX=25,Y=35を代入すると 35=a・25+b・・・(3) となります。 式(2)と式(3)からa,bを求めます。 aは、式(3)-式(2)から a=20/15=4/3 bは式(2)にa=4/3を代入して b=15-10・4/3=(15-10)/3=5/3 となります。 よつて、式(1)は Y=4/3・X+5/3・・・(4) で表すことができます。 終点CのX座標が50である時、Y座標は式(4)から求めることができます。終点CのY座標は68・1/3=68.333・・・

  • kon555
  • ベストアンサー率51% (1848/3569)
回答No.2

「点A(10, 15)、点B(25, 35)を通る直線」  A⇒Bでxは+15、yは+20変化しています。20/15は1.333・・・なので、xが1増えるたびにyは1.333・・・・増えます。  求めたい点CのX座標が50。50-10は40。40*1.333=53.333・・・。これはY値の増加分なので、点Aのy15を足して68.333・・・  点Cの座標は(50,68.333)ですね。桁数はお好きにどうぞ。

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.1

>起点Aが(x10, y15)、中継点Bが(x25, y35) これの意味がよくわかりません。 Aの座標が(10, 15), Bの座標が(25, 35) ということですか?

関連するQ&A