From c1f86cd446b18c6032a69882a1387dff3a1e1b80 Mon Sep 17 00:00:00 2001 From: Ralf Hartmann Date: Fri, 12 Jan 2001 09:15:06 +0000 Subject: [PATCH] Reimplement HyperBallBoundary<2>::get_intermediate_points_on_line as it didn't work in all cases before. git-svn-id: https://svn.dealii.org/trunk@3645 0785d39b-7218-0410-832d-ea1e28bc413d --- .../deal.II/source/grid/tria_boundary_lib.cc | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/deal.II/deal.II/source/grid/tria_boundary_lib.cc b/deal.II/deal.II/source/grid/tria_boundary_lib.cc index 10cb013b41..0f7a6c6cf2 100644 --- a/deal.II/deal.II/source/grid/tria_boundary_lib.cc +++ b/deal.II/deal.II/source/grid/tria_boundary_lib.cc @@ -16,6 +16,7 @@ #include #include #include +#include #include @@ -88,16 +89,24 @@ HyperBallBoundary<2>::get_intermediate_points_on_line ( { Point<2> v0=line->vertex(0)-center, v1=line->vertex(1)-center; - double alpha0=atan(v0(1)/v0(0)), - alpha1=atan(v1(1)/v1(0)); - double dalpha=(alpha1-alpha0)/(n+1); - double alpha=alpha0+dalpha; - - for (unsigned int i=0; i S; + S[0][0]=cos(alpha); + S[1][0]=sin(alpha); + S[0][1]=-S[1][0]; + S[1][1]=S[0][0]; + + contract(points[0], S, v0); + for (unsigned int i=1; i