中点とは、2つの座標の真ん中の座標のことです。2次元座標の場合、与えられた2つの座標をそれぞれ(x1,y1)、(x2,y2)とすると中点の座標(mx,my)は、mx=(x1+x2)/2、my=(y1+y2)/2で計算されます。次に、中点の座標がmx=(x1+x2)/2、my=(y1+y2)/2になる理由を説明します。2つの座標(x1,y1)と(x2,y2)のxとyの差を求めるとそれぞれ(x2-x1)、(y2-y1)となります。この値を半分にしてx1とy1に足した値が中点の座標(mx,my)です(下図)。これを式で表すとmx=x1+(x2-x1)/2、my=y1+(y2-y1)/2となります。これらの式を簡単にするとmx=x1+(x2-x1)/2はmx=(x1+x2)/2、my=y1+(y2-y1)/2はmx=(y1+y2)/2になります。ここで、中点座標を計算するJavaソースコードを紹介します。このサンプルソースでは、2つの座標を固定値として記述しているので、コマンドパラメータで渡すことはできません。中点座標を計算するメソッドは、x座標を計算するメソッドとy座標を計算するメソッドの2つを作成しました。引数と計算式は同じで2つの値を足して2で割っているだけです。中点の座標は(97.5,21.35)です2つの座標(52.0,30.4)、(143.0,12.3)の中点座標が(97.5,21.35)として表示されます。2つの座標の値をいろいろと変えて試してみてください。次のJavaソースコードは、MidPoint2.java中点座標を計算するメソッドを変更して、x座標とy座標を戻すようにしたものです。Javaのメソッドはreturn文で値を1つだけしか返せませんが、配列を使えば複数の値を戻すことができます。以下の例では、double型の配列の1番目にx座標、2番目にy座標を格納しています。中点の座標は(97.5,21.35)ですMidPoint1.javaと同じ結果が得られました。このことから配列の値がメソッドで変更されていることがわかります。