Maxima/面積計算 座標法 倍横距法
< Maxima
(面積計算 座標法 倍横距法 から転送)多角形の面積計算
編集座標(1,1),(3,1),(3,3),(1,3)の多角形の面積を求める。
/*size:行列の寸法関数 area:面積計算関数*/ size(Z):=block(fn(f):=1,C:matrixmap(fn,col(Z,1)),R:matrixmap(fn,row(Z,1)), return(matrix([transpose(C).C,R.transpose(R)])))$ area(B):=block(B:addcol(B,col(B,1)),B:addcol(B,col(B,2)), return(sum(B[1,i]*(B[2,i+1]-B[2,i-1]),i,(1+1),(size(B)[1,2]-2+1))/2))$ AT:matrix([1,1], [3,1], [3,3], [1,3] ); print("AT=",AT,"S=",area(transpose(AT)))$