# 最近点の計算

ある点と領域について，その領域内の指定された点の最近点が計算できる．最近点はArgMin[, ] は指定された点で は領域）で与えられる．

 In[1]:= XRegionNearest[Disk[], {x, y}]
 Out[1]=
 In[2]:= XRegionNearest[Rectangle[], {x, y}]
 Out[2]=

より複雑なものもある．

 In[3]:= XRegionNearest[Triangle[{{0, 0}, {1, 0}, {0, 1}}], {x, y}]
 Out[3]=

 In[4]:= XpiecewiseConditions[HoldPattern[Piecewise[cases_, default_]]] := Module[{cl = Last /@ cases}, Append[cl, And @@ (Not /@ cl)]]
 In[5]:= Xconds = piecewiseConditions[RegionNearest[Triangle[], {x, y}]];
 In[6]:= XRegionPlot[conds, {x, -1, 2}, {y, -1, 2}, ImageSize -> Medium]
 Out[6]=

 In[7]:= XRegionNearest[Tetrahedron[], {x, y, z}]
 Out[7]=
 In[8]:= Xconds = piecewiseConditions[RegionNearest[Tetrahedron[], {x, y, z}]];
 In[9]:= XShow[Table[ RegionPlot3D[conds[[i]], {x, -1, 2}, {y, -1, 2}, {z, -1, 2}, Mesh -> None, PlotStyle -> Directive[Opacity[0.4], ColorData[95, i]], BoundaryStyle -> Gray, PlotPoints -> 35], {i, Length[conds]}], ImageSize -> Medium, Lighting -> "Neutral"]
 Out[9]=

## Mathematica

Questions? Comments? Contact a Wolfram expert »