val op = pointToOrthogonalPoint(p)
で一度キャッシュしてから（何度も同じメソッドを呼ばない）