## ---- include = FALSE--------------------------------------------------------- knitr::opts_chunk$set(collapse = TRUE,comment = "#>",fig.width=6, fig.height=4, fig.align = "center") ## ----setup, message=FALSE, results='hide'------------------------------------- library(pcds) ## ----------------------------------------------------------------------------- A<-c(1,1); B<-c(2,0); C<-c(1.5,2); Tr<-rbind(A,B,C); n<-10 #try also n<-20 or 100 ## ----eval=F------------------------------------------------------------------- # set.seed(1) # Xp<-runif.tri(n,Tr)$g ## ----cl2eCCvr, eval=F, fig.cap="Scatterplot of the uniform $X$ points in the triangle $T=T(A,B,C)$ with vertices $A=(1,1)$, $B=(2,0)$, and $C=(1.5,2)$. The closest points in CC-vertex regions to opposite edges are marked with red crosses."---- # Ext<-cl2edgesCCvert.reg(Xp,Tr) # Ext # #> Call: # #> cl2edgesCCvert.reg(Xp = Xp, tri = Tr) # #> # #> Type: # #> [1] "Closest Points in CC-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2) \n to the Opoosite Edges" # summary(Ext) # #> Call: # #> cl2edgesCCvert.reg(Xp = Xp, tri = Tr) # #> # #> Type of the Extrema # #> [1] "Closest Points in CC-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2) \n to the Opoosite Edges" # #> # #> Extremum Points: Closest Points in CC-Vertex Regions of the Triangle to its Edges # #> (Row i corresponds to vertex region i for i=1,2,3) # #> [,1] [,2] # #> [1,] 1.723711 0.8225489 # #> [2,] 1.794240 0.2158873 # #> [3,] 1.380035 1.5548904 # #> [1] "Vertex labels are A=1, B=2, and C=3 (correspond to row number in Extremum Points)" # #> # #> Distances between the Edges and the Closest Points to the Edges in CC-Vertex Regions # #> (i-th entry corresponds to vertex region i for i=1,2,3) # #> [1] 0.06854235 1.06105561 0.66109225 # #> # #> Vertices of the Support Triangle # #> [,1] [,2] # #> A 1.0 1 # #> B 2.0 0 # #> C 1.5 2 # plot(Ext) ## ----cl2eCMvr, eval=F, fig.cap="Scatterplot of the uniform $X$ points in the triangle $T=T(A,B,C)$. The closest points in CM-vertex regions to opposite edges are marked with red crosses."---- # Ext<-cl2edgesCMvert.reg(Xp,Tr) # Ext # #> Call: # #> cl2edgesCMvert.reg(Xp = Xp, tri = Tr) # #> # #> Type: # #> [1] "Closest Points in CM-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2) \n to the Opposite Edges" # summary(Ext) # #> Call: # #> cl2edgesCMvert.reg(Xp = Xp, tri = Tr) # #> # #> Type of the Extrema # #> [1] "Closest Points in CM-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2) \n to the Opposite Edges" # #> # #> Extremum Points: Closest Points in CM-Vertex Regions of the Triangle to its Edges # #> (Row i corresponds to vertex region i for i=1,2,3) # #> [,1] [,2] # #> [1,] 1.316272 1.0372685 # #> [2,] 1.687023 0.7682074 # #> [3,] 1.482080 1.1991317 # #> [1] "Vertex labels are A=1, B=2, and C=3 (correspond to row number in Extremum Points)" # #> # #> Distances between the Edges and the Closest Points to the Edges in CM-Vertex Regions # #> (i-th entry corresponds to vertex region i for i=1,2,3) # #> [1] 0.4117393 0.7181527 0.4816895 # #> # #> Vertices of the Support Triangle # #> [,1] [,2] # #> A 1.0 1 # #> B 2.0 0 # #> C 1.5 2 # plot(Ext) ## ----cl2eMvr, eval=F, fig.cap="Scatterplot of the uniform $X$ points in the triangle $T=T(A,B,C)$. The closest points in M-vertex regions to opposite edges are marked with red crosses."---- # M<-c(1.6,1.0) #try also M<-as.numeric(runif.tri(1,Tr)$g) # Ext<-cl2edgesMvert.reg(Xp,Tr,M) # Ext # #> Call: # #> cl2edgesMvert.reg(Xp = Xp, tri = Tr, M = M) # #> # #> Type: # #> [1] "Closest Points in M-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2)\n to Opposite Edges" # summary(Ext) # #> Call: # #> cl2edgesMvert.reg(Xp = Xp, tri = Tr, M = M) # #> # #> Type of the Extrema # #> [1] "Closest Points in M-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2)\n to Opposite Edges" # #> # #> Extremum Points: Closest Points in M-Vertex Regions of the Triangle to its Edges # #> (Row i corresponds to vertex region i for i=1,2,3) # #> [,1] [,2] # #> [1,] 1.482080 1.1991317 # #> [2,] 1.687023 0.7682074 # #> [3,] 1.380035 1.5548904 # #> [1] "Vertex labels are A=1, B=2, and C=3 (correspond to row number in Extremum Points)" # #> # #> Distances between the Edges and the Closest Points to the Edges in M-Vertex Regions # #> (i-th entry corresponds to vertex region i for i=1,2,3) # #> [1] 0.2116239 0.7181527 0.6610922 # #> # #> Vertices of the Support Triangle # #> [,1] [,2] # #> A 1.0 1 # #> B 2.0 0 # #> C 1.5 2 # plot(Ext) ## ----cl2CC_CCvr, eval=F, fig.cap="Scatterplot of the uniform $X$ points in the triangle $T=T(A,B,C)$ . The closest points in CC-vertex regions to the circumcenter are marked with red crosses."---- # Ext<-cl2CCvert.reg(Xp,Tr) # Ext # #> Call: # #> cl2CCvert.reg(Xp = Xp, tri = Tr) # #> # #> Type: # #> [1] "Closest Points in CC-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2) to its Circumcenter" # summary(Ext) # #> Call: # #> cl2CCvert.reg(Xp = Xp, tri = Tr) # #> # #> Type of the Extrema # #> [1] "Closest Points in CC-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2) to its Circumcenter" # #> # #> Extremum Points: Closest Points in CC-Vertex Regions of the Triangle to its Circumcenter # #> (Row i corresponds to vertex i for i=1,2,3) # #> [,1] [,2] # #> [1,] 1.723711 0.8225489 # #> [2,] 1.794240 0.2158873 # #> [3,] 1.529720 1.5787125 # #> [1] "Vertex labels are A=1, B=2, and C=3 (correspond to row number in Extremum Points)" # #> # #> Distances between the Circumcenter and the Closest Points to the Circumcenter in CC-Vertex Regions # #> (i-th entry corresponds to vertex i for i=1,2,3) # #> [1] 0.4442261 0.9143510 0.7428921 # #> # #> Vertices of the Support Triangle # #> [,1] [,2] # #> A 1.0 1 # #> B 2.0 0 # #> C 1.5 2 # plot(Ext) ## ----f2CCvr, eval=F, fig.cap="Scatterplot of the uniform $X$ points in the triangle $T=T(A,B,C)$. The furthest points in CC-vertex regions to the vertices are marked with red crosses."---- # Ext<-fr2vertsCCvert.reg(Xp,Tr) # Ext # #> Call: # #> fr2vertsCCvert.reg(Xp = Xp, tri = Tr) # #> # #> Type: # #> [1] "Furthest Points in CC-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2) from its Vertices" # summary(Ext) # #> Call: # #> fr2vertsCCvert.reg(Xp = Xp, tri = Tr) # #> # #> Type of the Extrema # #> [1] "Furthest Points in CC-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2) from its Vertices" # #> # #> Extremum Points: Furthest Points in CC-Vertex Regions of the Triangle from its Vertices # #> (Row i corresponds to vertex i for i=1,2,3) # #> [,1] [,2] # #> [1,] 1.723711 0.8225489 # #> [2,] 1.794240 0.2158873 # #> [3,] 1.380035 1.5548904 # #> [1] "Vertex labels are A=1, B=2, and C=3 (correspond to row number in Extremum Points)" # #> # #> Distances between the vertices and the furthest points in the vertex regions # #> (i-th entry corresponds to vertex i for i=1,2,3) # #> [1] 0.7451486 0.2982357 0.4609925 # #> # #> Vertices of the Support Triangle # #> [,1] [,2] # #> A 1.0 1 # #> B 2.0 0 # #> C 1.5 2 # plot(Ext) ## ----kf2CCvr, eval=F, fig.cap="Scatterplot of the uniform $X$ points in the triangle $T=T(A,B,C)$ . The $k=3$ most furthest points in CC-vertex regions to the vertices are marked with red crosses."---- # k=3 # Ext<-kfr2vertsCCvert.reg(Xp,Tr,k) # Ext # #> Call: # #> kfr2vertsCCvert.reg(Xp = Xp, tri = Tr, k = k) # #> # #> Type: # #> [1] "3 Furthest Points in CC-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2) from its Vertices" # summary(Ext) # #> Call: # #> kfr2vertsCCvert.reg(Xp = Xp, tri = Tr, k = k) # #> # #> Type of the Extrema # #> [1] "3 Furthest Points in CC-Vertex Regions of the Triangle with Vertices A=(1,1), B=(2,0), and C=(1.5,2) from its Vertices" # #> # #> Extremum Points: 3 Furthest Points in CC-Vertex Regions of the Triangle from its Vertices # #> (Row i corresponds to vertex i for i=1,2,3) # #> [,1] [,2] # #> 1. furthest from vertex 1 1.723711 0.8225489 # #> 2. furthest from vertex 1 1.687023 0.7682074 # #> 3. furthest from vertex 1 1.482080 1.1991317 # #> 1. furthest from vertex 2 1.794240 0.2158873 # #> 2. furthest from vertex 2 NA NA # #> 3. furthest from vertex 2 NA NA # #> 1. furthest from vertex 3 1.380035 1.5548904 # #> 2. furthest from vertex 3 1.529720 1.5787125 # #> 3. furthest from vertex 3 1.477620 1.7224190 # #> [1] "Vertex labels are A=1, B=2, and C=3 (where vertex i corresponds to row numbers 3(i-1) to 3i in Extremum Points)" # #> # #> Distances between the vertices and the 3 furthest points in the vertex regions # #> (i-th entry corresponds to vertex i for i=1,2,3) # #> [,1] [,2] [,3] # #> [1,] 0.3686516 0.7250712 0.3511223 # #> [2,] 0.2982357 NA NA # #> [3,] 0.4609925 0.4223345 0.2784818 # #> # #> Vertices of the Support Triangle # #> [,1] [,2] # #> A 1.0 1 # #> B 2.0 0 # #> C 1.5 2 # plot(Ext) ## ----eval=F------------------------------------------------------------------- # n<-10 #try also n<-20 # Xp<-runif.std.tri(n)$gen.points ## ----closest2edges-Te, eval=F, fig.cap="Scatterplot of the uniform $X$ points in the triangle $T_e$. The closest points to the edges are marked with red crosses."---- # Ext<-cl2edges.std.tri(Xp) # Ext # #> Call: # #> cl2edges.std.tri(Xp = Xp) # #> # #> Type: # #> [1] "Closest Points in the Standard Equilateral Triangle Te=T(A,B,C) with Vertices A=(0,0), B=(1,0), and C=(1/2,sqrt(3)/2) to its Edges" # summary(Ext) # #> Call: # #> cl2edges.std.tri(Xp = Xp) # #> # #> Type of the Extrema # #> [1] "Closest Points in the Standard Equilateral Triangle Te=T(A,B,C) with Vertices A=(0,0), B=(1,0), and C=(1/2,sqrt(3)/2) to its Edges" # #> # #> Extremum Points: Closest Points in the Standard Equilateral Triangle to its Edges # #> (Row i corresponds to edge i for i=1,2,3) # #> [,1] [,2] # #> [1,] 0.4763512 0.7726664 # #> [2,] 0.4763512 0.7726664 # #> [3,] 0.7111212 0.1053883 # #> [1] "Edge labels are AB=3, BC=1, and AC=2 (correspond to row number in Extremum Points)" # #> # #> Distances between Edges and the Closest Points in the Standard Equilateral Triangle # #> (Row i corresponds to edge i for i=1,2,3) # #> [1] 0.06715991 0.02619907 0.10538830 # #> # #> Vertices of the Support Standard Equilateral Triangle # #> [,1] [,2] # #> A 0.0 0.0000000 # #> B 1.0 0.0000000 # #> C 0.5 0.8660254 # plot(Ext,asp=1) ## ----f2eCMer, eval=F, fig.cap="Scatterplot of the uniform $X$ points in the triangle $T_e$. The furthest points in CM-edge regions to the corresponding edges are marked with red crosses."---- # Ext<-fr2edgesCMedge.reg.std.tri(Xp) # Ext # #> Call: # #> fr2edgesCMedge.reg.std.tri(Xp = Xp) # #> # #> Type: # #> [1] "Furthest Points in the CM-Edge Regions of the Standard Equilateral Triangle T=(A,B,C) with A=(0,0), B=(1,0), and C=(1/2,sqrt(3)/2) from its Edges" # summary(Ext) # #> Call: # #> fr2edgesCMedge.reg.std.tri(Xp = Xp) # #> # #> Type of the Extrema # #> [1] "Furthest Points in the CM-Edge Regions of the Standard Equilateral Triangle T=(A,B,C) with A=(0,0), B=(1,0), and C=(1/2,sqrt(3)/2) from its Edges" # #> # #> Extremum Points: Furthest Points in the CM-Edge Regions of the Standard Equilateral Triangle from its Edges # #> (Row i corresponds to edge i for i=1,2,3) # #> [,1] [,2] # #> [1,] 0.6508705 0.2234491 # #> [2,] 0.4590657 0.2878622 # #> [3,] 0.7111212 0.1053883 # #> [1] "Edge Labels are AB=3, BC=1, and AC=2 (correspond to row number in Extremum Points)" # #> # #> Distances between the edges and the furthest points in the edge regions # #> (i-th entry corresponds to edge i for i=1,2,3) # #> [1] 0.1906305 0.2536315 0.1053883 # #> # #> Vertices of the Support Standard Equilateral Triangle # #> [,1] [,2] # #> A 0.0 0.0000000 # #> B 1.0 0.0000000 # #> C 0.5 0.8660254 # plot(Ext,asp=1) ## ----------------------------------------------------------------------------- c<-.4 a<-0; b<-10; int<-c(a,b) nx<-10 Xp<-runif(nx,a,b) ## ----cl2McVR, eval=F, fig.cap="Scatterplot of the uniform $X$ points in the interval $(0,10)$. The closest points in $M_c-vertex regions to the center $M_c$ are marked with red crosses. The end points of the interval and the center are marked with dashed vertical lines."---- # Ext<-cl2Mc.int(Xp,int,c) # Ext # #> Call: # #> cl2Mc.int(Xp = Xp, int = int, c = c) # #> # #> Type: # #> [1] "Closest Points in Mc-Vertex Regions of the Interval (a,b) = (0,10) to its Center Mc = 4" # summary(Ext) # #> Call: # #> cl2Mc.int(Xp = Xp, int = int, c = c) # #> # #> Type of the Extrema # #> [1] "Closest Points in Mc-Vertex Regions of the Interval (a,b) = (0,10) to its Center Mc = 4" # #> # #> Extremum Points: Closest Points in Mc-Vertex Regions of the Interval to its Center # #> (i-th entry corresponds to vertex i for i=1,2) # #> [1] 2.454885 4.100841 # #> [1] "Vertex Labels are a=1 and b=2 for the interval (a,b)" # #> # #> Distances between the Center Mc and the Closest Points to Mc in Mc-Vertex Regions # #> (i-th entry corresponds to vertex i for i=1,2) # #> [1] 1.5451149 0.1008408 # #> # #> Vertices of the Support Interval # #> a b # #> 0 10 # plot(Ext) ## ----eval=F------------------------------------------------------------------- # A<-c(0,0,0); B<-c(1,0,0); C<-c(1/2,sqrt(3)/2,0); D<-c(1/2,sqrt(3)/6,sqrt(6)/3) # set.seed(1) # tetra<-rbind(A,B,C,D)+matrix(runif(12,-.25,.25),ncol=3) # n<-10 #try also n<-20 # Cent<-"CC" #try also "CM" # # n<-10 #try also n<-20 # Xp<-runif.tetra(n,tetra)$g #try also Xp<-cbind(runif(n),runif(n),runif(n)) ## ----cl2fCCvr, eval=F, fig.cap="Scatterplot of the uniform $X$ points in the tetrahedron $T(A,B,C,D)$. The closest points in CC-vertex regions to opposite faces are marked with red crosses."---- # Ext<-cl2faces.vert.reg.tetra(Xp,tetra,Cent) # Ext # #> Call: # #> cl2faces.vert.reg.tetra(Xp = Xp, th = tetra, M = Cent) # #> # #> Type: # #> [1] "Closest Points in CC-Vertex Regions of the Tetrahedron with Vertices A=(-0.12,-0.15,0.06), B=(0.94,0.2,-0.22), C=(0.54,1.09,-0.15), and D=(0.7,0.37,0.65) to the Opposite Faces" # summary(Ext) # #> Call: # #> cl2faces.vert.reg.tetra(Xp = Xp, th = tetra, M = Cent) # #> # #> Type of the Extrema # #> [1] "Closest Points in CC-Vertex Regions of the Tetrahedron with Vertices A=(-0.12,-0.15,0.06), B=(0.94,0.2,-0.22), C=(0.54,1.09,-0.15), and D=(0.7,0.37,0.65) to the Opposite Faces" # #> # #> Extremum Points: Closest Points in CC-Vertex Regions of the Tetrahedron to its Faces # #> (Row i corresponds to face i for i=1,2,3,4) # #> [,1] [,2] [,3] # #> [1,] 0.1073281 0.0109421 0.19871179 # #> [2,] 0.6535570 0.2922984 0.15795015 # #> [3,] 0.5199352 0.6610763 0.08954581 # #> [4,] 0.5127296 0.5449680 0.24057920 # #> [1] "Vertex labels are A=1, B=2, C=3, and D=4 (correspond to row number in Extremum Points)" # #> # #> Distances between Faces and the Closest Points to the Faces in CC-Vertex Regions # #> (i-th entry corresponds to vertex region i for i=1,2,3,4) # #> [1] 0.7554212 0.2773495 0.4803672 0.3509001 # #> # #> Vertices of the Support Tetrahedron # #> [,1] [,2] [,3] # #> A -0.1172457 -0.1491590 0.06455702 # #> B 0.9360619 0.1991948 -0.21910686 # #> C 0.5364267 1.0883630 -0.14701271 # #> D 0.7041039 0.3690740 0.65477496 # plot(Ext)