DiscretizeRegion[reg]
領域 reg をMeshRegionに離散化する.
DiscretizeRegion[reg,{{xmin,xmax},…}]
境界
に制限する.
DiscretizeRegion
DiscretizeRegion[reg]
領域 reg をMeshRegionに離散化する.
DiscretizeRegion[reg,{{xmin,xmax},…}]
境界
に制限する.
詳細とオプション
- DiscretizeRegionは,メッシュ生成あるいは格子生成としても知られている.
- DiscretizeRegionは,領域 reg の内側と境界を離散化する.
- 特に,DiscretizeRegionは reg のより次元の低い部分を離散化しようとする.
- 領域 reg はConstantRegionQでRegionEmbeddingDimensionが3以下のものなら何でもよい.
- DiscretizeRegionには,MeshRegionと同じオプションに以下の追加・変更を加えたものが使える.
-
AccuracyGoal Automatic 目標とする確度桁数 MaxCellMeasure Automatic 最大セル測度 MeshQualityGoal Automatic メッシュセルの品質目標 Method Automatic 使用するメソッド MeshRefinementFunction None メッシュセルのより細かな分割が必要な場合にTrueを返す関数 PerformanceGoal $PerformanceGoal スピードまたは品質を考慮するかどうか PrecisionGoal Automatic 目標とする精度桁数 - MeshRefinementFunction->f とすると,関数 f[vlist,m]が作成された各シンプレックスに適用される.ただし,vlist は頂点のリストであり m は測度である,f[vlist,m]がTrueを返す場合は,シンプレックスがさらに分割される.
- AccuracyGoal->a でPrecisionGoal->p のとき,領域 reg あるいは離散化された領域 dreg とRegionSymmetricDifference[reg,dreg]中の任意の点との間の最大距離を
より小さく保とうと試みられる.ただし,
は境界ボックスの対角線の長さである.
例題
すべて開く すべて閉じる例 (3)
DiscretizeRegion[Interval[{-2, -1}, {1, 2}]]DiscretizeRegion[ImplicitRegion[Sin[x] ≤ 1 / 2, {x}], {{0, 50}}]DiscretizeRegion[ImplicitRegion[Sin[x] ≤ 1 / 2 || Sin[x] == 9 / 10, {x}], {{0, 10}}]DiscretizeRegion[Disk[]]DiscretizeRegion[Disk[], {{0, 1}, {0, 1}}]DiscretizeRegion[ImplicitRegion[x ^ 2 - y ^ 2 ≤ 1 || x ^ 2 + y ^ 2 == 4, {x, y}], {{-2, 2}, {-2, 2}}]DiscretizeRegion[Cylinder[]]DiscretizeRegion[Ball[], {{0, 1}, {0, 1}, {0, 1}}]DiscretizeRegion[ImplicitRegion[x ^ 2 + y ^ 2 - z ^ 2 ≤ 1, {x, y, z}], {{-2, 2}, {-2, 2}, {-2, 2}}]スコープ (30)
1D領域 (5)
PointおよびLineは,1Dに存在可能な特殊領域である:
DiscretizeRegion[Point[List /@ Range[10]]]Line:
DiscretizeRegion[Line[Transpose@{List /@ Range[1, 20, 2], List /@ Range[2, 20, 2]}]]ImplicitRegionは,変数が1つだけなら,1Dである:
DiscretizeRegion[ImplicitRegion[Abs[Sin[x]] ≤ 3 / 4, {{x, 0, 10}}]]ℛ = ImplicitRegion[Abs[Sin[x]] ≤ 3 / 4, {x}];DiscretizeRegion[ℛ, {{0, 10}}]ParametricRegionは,関数を1つしか有していないのであれば,1Dである:
DiscretizeRegion[ParametricRegion[{t + 5}, {{t, 0, 10}}]]ℛ = ParametricRegion[{t + 5}, {{t, 0, ∞}}];
BoundedRegionQ[ℛ]DiscretizeRegion[ℛ, {{0, 10}}]1DにおけるBooleanRegion:
DiscretizeRegion[BooleanRegion[Xor, {Line[{{-2}, {1}}], Line[{{-1}, {2}}]}]]DiscretizeRegion[ImplicitRegion[x == 0 || x ≥ 1, {{x, 0, 3}}]]DimensionalMeshComponents[%]2D領域 (8)
Point,Circle,Rectangleは,2Dに存在可能な特殊領域である:
DiscretizeRegion[Point[Tuples[{0, 1, 2, 3}, 2]]]Circleは1Dであるが,2Dに埋め込まれている:
DiscretizeRegion[Circle[]]Rectangleは2Dである:
DiscretizeRegion[Rectangle[]]ImplicitRegionは,変数が2つあれば,2Dである.1D領域は,方程式であることが多い:
DiscretizeRegion[ImplicitRegion[x ^ 2 - y ^ 2 == 1, {{x, -3, 3}, {y, -3, 3}}]]DiscretizeRegion[ImplicitRegion[x ^ 2 - y ^ 2 ≤ 1, {{x, -3, 3}, {y, -3, 3}}]]ℛ = ImplicitRegion[x ^ 2 - y ^ 2 ≤ 1, {x, y}];
BoundedRegionQ[ℛ]DiscretizeRegion[ℛ, {{-3, 3}, {-3, 3}}]ParametricRegionは,関数を2つ有するのであれば,2Dである.1D領域はパラメータを1つ持つ:
DiscretizeRegion[ParametricRegion[{Cos[4 t], Sin[3 t]}, t]]DiscretizeRegion[ParametricRegion[{{t, s (1 - t ^ 2)}, -1 ≤ s ≤ 1 && -1 ≤ t ≤ 1}, {s, t}]]DiscretizeRegion[ParametricRegion[{{t, s (1 - t ^ 2)}, -1 ≤ s ≤ 1 && -1 ≤ t ≤ 1}, {s, t}], {{-1, 1}, {-2 / 3, 2 / 3}}]DiscretizeRegion[ParametricRegion[{{s, s t}, s ^ 2 + t ^ 2 ≤ 1}, {s, t}]]DiscretizeRegion[ParametricRegion[{{s, s t}, s ^ 2 + t ^ 2 == 1}, {s, t}]]DiscretizeRegion[ParametricRegion[{{s, s t}, s ^ 2 + t ^ 2 ≤ 1 || s == t}, {{s, -1, 1}, {t, -1, 1}}]]2つの厳密領域が与えられた場合は,ParametricRegionを使ってそのMinkowski和を表すことができる:
r1 = Disk[{0, 0}, 1 / 2];
r2 = Polygon[{{0, 0}, {3, -1}, {1, 0}, {3, 1}}];
pr = ParametricRegion[{{x1 + x2, y1 + y2}, {x1, y1}∈r1 && {x2, y2}∈r2}, {x1, x2, y1, y2}];
DiscretizeRegion[pr]2DにおけるRegionUnion:
DiscretizeRegion[RegionUnion[Disk[{0, 0}, 1], Disk[{1, 0}, 1]]]DiscretizeRegion[ImplicitRegion[x ^ 2 + y ^ 2 ≤ 1 || x == y, {{x, -2, 2}, {y, -2, 2}}]]DimensionalMeshComponents[%]GeoGridPositionを使った多角形:
ℛ = Polygon[GeoGridPosition[{{{-0.9950503945490105, 1.2366760550756015},
{-0.9952074890903578, 1.2369207053693891}, {-0.9952196732768064, 1.2369073327446167},
{-0.9953160063787643, 1.236848436956935}, {-0.9954141759436825, 1.2369993898475449},
{-0. ... 197645333103}, {-0.9949098578570917, 1.2368130881428654},
{-0.9948663952535768, 1.2367477711687371}, {-0.9948714472169538, 1.2367426500757825},
{-0.9949211061652593, 1.2367089232486177}, {-0.9949439717990124, 1.236746107097628}}}, "Bonne"]];DiscretizeRegion[ℛ]GeoPositionを使った多角形:
ℛ = Polygon[GeoPosition[{{{43.349502921526, -1.78468798335306}, {43.3497985, -1.78445940000001},
{43.3653837, -1.77019340000001}, {43.3681162, -1.78639459999999}, {43.3730735, -1.7891532},
{43.3771217, -1.78792549999999}, {43.3779345, -1.78703680000001 ... 5464}, {41.9335435, 8.7471495},
{41.9082639, 8.71946959999999}, {41.9101849, 8.6421107}, {41.894162, 8.6085872},
{41.9350981, 8.62337150000001}, {41.9622323, 8.59062899999999}, {41.9776961, 8.66552020000001},
{42.0096144, 8.6563839}}}]];DiscretizeRegion[ℛ]3D領域 (8)
Point,Line,Polygon,Ellipsoidは,3Dに存在可能な特殊領域である:
DiscretizeRegion[Point[Tuples[{0, 1, 2, 3}, 3]]]Line:
DiscretizeRegion[Line[RandomReal[1, {20, 2, 3}]]]DiscretizeRegion[Polygon[{{1, 0, 0}, {1, 1, 1}, {0, 0, 1}}]]DiscretizeRegion[Ellipsoid[{0, 0, 0}, {{5, 2, 3}, {2, 3, 2}, {3, 2, 5}}]]ImplicitRegionは,変数が3つであれば,3Dである.2D領域は方程式であることが多い:
DiscretizeRegion[ImplicitRegion[(x ^ 2 + (9 / 4)y ^ 2 + z ^ 2 - 1) ^ 3 - x ^ 2z ^ 3 - (9 / 80)y ^ 2z ^ 3 == 0, {x, y, z}]]ℛ = ImplicitRegion[x ^ 2 + y ^ 2 - x ^ 2z + y ^ 2z + z ^ 2 - 1 == 0, {x, y, z}];
BoundedRegionQ[ℛ]DiscretizeRegion[ℛ, {{-3, 3}, {-3, 3}, {-3, 3}}]3つの関数と3Dパラメータ空間を持つParametricRegionは3D立体である:
DiscretizeRegion@ParametricRegion[{{x, y, z + y * x}, x ^ 2 + y ^ 2 + z ^ 2 <= 1}, {x, y, z}]{RegionDimension[%], RegionEmbeddingDimension[%]}3つの関数と2Dパラメータ空間を持つParametricRegionは3Dに埋め込まれた曲面である:
DiscretizeRegion[ParametricRegion[{Cos[u] / 2, 3Cos[v] / 2 + Sin[u] / 2, Sin[v]}, {{u, 0, 2π}, {v, 0, 2π}}]]{RegionDimension[%], RegionEmbeddingDimension[%]}球の下方表面に制限されたパラメータは2Dパラメータ空間にある:
DiscretizeRegion[ParametricRegion[{{z + y * x, y, x ^ 2}, x ^ 2 + y ^ 2 + z ^ 2 == 1 && z < 0}, {x, y, z}]]3つの関数と1Dパラメータ空間を持つParametricRegionは3Dに埋め込まれた曲線である:
DiscretizeRegion[ParametricRegion[{Cos[2t], -Sin[Pi / 12 - 3 t], t}, {{t, 0, 2Pi}}]]{RegionDimension[%], RegionEmbeddingDimension[%]}パラメータが混合次元領域にあるとき,そのパラメータは混合次元領域の一部でありうる:
パラメータが混合次元領域にあるところでParametricRegionを離散化する:
DiscretizeRegion[ParametricRegion[{{x, y, z + y x}, x ^ 2 + y ^ 2 + z ^ 2 <= 1 || z == Sin[x + y] || (x == 0 && y == 0)}, {{x, -1, 1}, {y, -1, 1}, {z, -2, 2}}]]DimensionalMeshComponents[%]2つの厳密領域が与えられた場合は,ParametricRegionを使ってそれらのMinkowski和を表すことができる:
r1 = Ball[];
r2 = Cuboid[{0, 0, 0}];
pr = ParametricRegion[{{x1 + x2, y1 + y2, z1 + z2}, {x1, y1, z1}∈r1 && {x2, y2, z2}∈r2}, {x1, y1, z1, x2, y2, z2}];
DiscretizeRegion[pr]DiscretizeRegion[ImplicitRegion[x ^ 2 + y ^ 2 + z ^ 2 ≤ 1 || x + y == 0, {{x, -2, 2}, {y, -2, 2}, {z, -2, 2}}]]詳細 (2)
離散化におけるセルの測度はMaxCellMeasureを使って制御することができる:
Ω = ImplicitRegion[x == 0 || Abs[x] + Abs[y] ≥ 1, {{x, -2, 2}, {y, -2, 2}}];DiscretizeRegion[Ω, MaxCellMeasure -> #]& /@ {Automatic, 1, 0.1, 0.01}デフォルトで,数として与えられた場合は埋込み次元に適用される:
HighlightMesh[DiscretizeRegion[Ω, MaxCellMeasure -> .1], 0]HighlightMesh[DiscretizeRegion[Ω, MaxCellMeasure -> {"Length" -> .25}], 0]非線形領域については,境界セルの測度はいくつかのオプションに依存する:
Ω = Disk[{1, 2}, {3, 4}, {5, 6}];
DiscretizeRegion[Ω]任意の線分の長さはMaxCellMeasureで制御できる:
DiscretizeRegion[Ω, MaxCellMeasure -> {"Length" -> #}]& /@ {5, 1, 1 / 5}曲線が視覚的に滑らかに見えるようにデフォルトのPrecisionGoalが値として選ばれる:
DiscretizeRegion[Ω, PrecisionGoal -> #]& /@ {Automatic, 1, 2, 3, 4}PrecisionGoal->Noneを使って境界測度をMaxCellMeasureに基づかせることができる:
DiscretizeRegion[Ω, MaxCellMeasure -> {"Length" -> #}, PrecisionGoal -> None]& /@ {5, 1, 1 / 5}AccuracyGoal->a を使って絶対許容度
を指定することができる:
DiscretizeRegion[Ω, PrecisionGoal -> None, AccuracyGoal -> #]& /@ {0, 1, 2, 3}MaxCellMeasureのデフォルトは埋込み次元を適用することである:
DiscretizeRegion[Ω, MaxCellMeasure -> #]& /@ {10, 1, 1 / 10}DiscretizeRegion[Ω, MaxCellMeasure -> #, AccuracyGoal -> 4]& /@ {10, 1, 1 / 10}品質 (7)
離散化におけるセルの測度はMaxCellMeasureを使って制御することができる:
DiscretizeRegion[Disk[], MaxCellMeasure -> #]& /@ {1, 0.1, 0.01}DiscretizeRegion[RegionUnion[Disk[], Line[{{-2, -2}, {2, 2}}]], MaxCellMeasure -> 0.01]Max[AnnotationValue[{%, 1}, MeshCellMeasure]]MaxCellMeasureは低次元セルの大きさも制御できる:
DiscretizeRegion[Disk[], MaxCellMeasure -> {"Length" -> #}]& /@ {1, 0.5, 0.2}DiscretizeRegion[Ball[], MaxCellMeasure -> {"Area" -> #}]& /@ {1, 0.2, 0.05}離散化におけるセルの品質はMeshQualityGoalを使って制御することができる:
Table[DiscretizeRegion[ImplicitRegion[x ^ 2 - y ^ 2 ≤ 1, {{x, -3, 3}, {y, -3, 3}}], MeshQualityGoal -> q, MaxCellMeasure -> 10], {q, {0.1, 0.5, 0.9}}]目標も"Minimal"あるいは"Maximal"に設定することができる:
Table[DiscretizeRegion[ImplicitRegion[x ^ 2 - y ^ 2 ≤ 1, {{x, -3, 3}, {y, -3, 3}}], MeshQualityGoal -> q, MaxCellMeasure -> 10], {q, {"Minimal", "Maximal"}}]MeshRefinementFunctionを使い,関数に基づいて離散化をさらに細かくできる:
DiscretizeRegion[Disk[]]細分化関数を加え,左上の象限における三角形をさらに小さくする:
DiscretizeRegion[Disk[], MeshRefinementFunction -> Function[{vertices, area}, Block[{x, y}, {x, y} = Mean[vertices];If[x > 0 && y > 0, area > 0.001, area > 0.01]]]]AccuracyGoalを使い,離散化境界が厳密な境界に近いものであるようにする:
{ℛ1, ℛ2} = DiscretizeRegion[Disk[], AccuracyGoal -> #]& /@ {2, 5}より高いAccuracyGoalを使った離散化は,真の境界により近い:
1 - Max[Norm[#]& /@ AnnotationValue[{#, {1}}, MeshCellCentroid]]& /@ {ℛ1, ℛ2}PrecisionGoalを使って離散化境界が厳密な境界に近いものであるようにする:
{ℛ1, ℛ2} = DiscretizeRegion[Disk[], PrecisionGoal -> #]& /@ {2, 5}より高いPrecisionGoalを使った離散化は,真の境界により近い:
1 - Max[Norm[#]& /@ AnnotationValue[{#, {1}}, MeshCellCentroid]]& /@ {ℛ1, ℛ2}高品質の離散化については,PerformanceGoalを"Quality"に設定する:
ℛ = ImplicitRegion[-1 + 2 x^2 ≤ y ≤ x^2, {{x, -1, 1}, {y, -1, 1}}];DiscretizeRegion[ℛ, PerformanceGoal -> "Quality"]あるいは,"Speed"に設定して品質は低いが離散化速度が上がるようにする:
DiscretizeRegion[ℛ, PerformanceGoal -> "Speed"]オプション (28)
AccuracyGoal (1)
AccuracyGoalを使って離散化境界が厳密な境界に近いものであるようにする:
{ℛ1, ℛ2} = DiscretizeRegion[Disk[], AccuracyGoal -> #]& /@ {2, 5}より高いAccuracyGoalを使った離散化は,真の境界により近い:
1 - Max[Norm[#]& /@ AnnotationValue[{#, {1}}, MeshCellCentroid]]& /@ {ℛ1, ℛ2}MaxCellMeasure (4)
MaxCellMeasureのAutomatic設定を使って多角形を離散化する:
p = Polygon[{{0, 0}, {2, -1}, {1, 0}, {2, 1}}];DiscretizeRegion[p]DiscretizeRegion[p, MaxCellMeasure -> ∞]mr = DiscretizeRegion[Disk[], MaxCellMeasure -> .1]AnnotationValue[{mr, 2}, MeshCellMeasure]mr = DiscretizeRegion[Disk[], MaxCellMeasure -> {"Length" -> .1}]線分長のHistogram:
Histogram[AnnotationValue[{mr, {1}}, MeshCellMeasure]]mr = DiscretizeRegion[Ball[], MaxCellMeasure -> {"Area" -> 0.05}]面の面積のHistogram:
Histogram[AnnotationValue[{mr, {2}}, MeshCellMeasure]]MeshCellHighlight (3)
MeshCellHighlightを使うと,MeshRegionの一部のハイライトを設定することができる:
DiscretizeRegion[Disk[], MeshCellHighlight -> {{1, All} -> Red, {0, All} -> Black}]面を透明にすると,3D MeshRegionの内部構造を見ることができる:
DiscretizeRegion[Ball[], {{0, 1}, {0, 1}, {0, 1}}, MeshCellHighlight -> {{2, All} -> Opacity[0.5, Orange]}]DiscretizeRegion[ParametricRegion[{t}, {{t, 0, 2}}], {{0, 10}}, MeshCellHighlight -> {{1, 1} -> {Thick, Red}, {1, 2} -> {Dashed, Green}}]DiscretizeRegion[ParametricRegion[{t}, {{t, 0, 2}}], {{0, 10}}, MeshCellHighlight -> {Line[{1, 2}] -> {Thick, Red}, Line[{2, 3}] -> {Dashed, Green}}]MeshCellLabel (3)
MeshCellLabelを使ってMeshRegionの一部にラベルを付けることができる:
DiscretizeRegion[Point[List /@ Range[3]], MeshCellLabel -> {0 -> "Index"}]DiscretizeRegion[RegularPolygon[5], MaxCellMeasure -> 1, MeshCellLabel -> {0 -> "Index", 1 -> "Index"}]DiscretizeRegion[ParametricRegion[{t}, {{t, 0, 2}}], {{0, 10}}, MeshCellLabel -> {{1, 1} -> "x", {1, 2} -> "y"}]DiscretizeRegion[ParametricRegion[{t}, {{t, 0, 2}}], {{0, 10}}, MeshCellLabel -> {Line[{1, 2}] -> "x", Line[{2, 3}] -> "y"}]MeshCellMarker (1)
MeshCellMarkerを使ってMeshRegionの一部に値を割り当てることができる:
DiscretizeRegion[Point[List /@ Range[3]], MeshCellMarker -> {{0, 1} -> 1, {0, 2} -> 2, {0, 3} -> 3}]MeshCellLabelを使ってマーカーを示す:
DiscretizeRegion[Point[List /@ Range[3]], MeshCellMarker -> {{0, 1} -> 1, {0, 2} -> 2, {0, 3} -> 3}, MeshCellLabel -> {0 -> "Marker"}]MeshCellShapeFunction (2)
MeshCellShapeFunctionを使うとMeshRegionの一部についての関数を指定することができる:
DiscretizeRegion[Rectangle[], MaxCellMeasure -> 1, MeshCellShapeFunction -> {0 -> (Disk[#, .1]&)}]DiscretizeRegion[Rectangle[], MaxCellMeasure -> 1, MeshCellShapeFunction -> {{0, 1} -> (Disk[#, .1]&), {0, 2} -> (Disk[#, {.1, .2}]&)}]DiscretizeRegion[Rectangle[], MaxCellMeasure -> 1, MeshCellShapeFunction -> {Point[1] -> (Disk[#, .1]&), Point[2] -> (Disk[#, {.1, .2}]&)}]MeshCellStyle (3)
MeshCellStyleを使うとMeshRegionの一部のスタイルを指定することができる:
DiscretizeRegion[Disk[], MeshCellStyle -> {{1, All} -> Red, {0, All} -> Black}]面を透明にすると,3D MeshRegionの内部構造を見ることができる:
DiscretizeRegion[Ball[], {{0, 1}, {0, 1}, {0, 1}}, MeshCellStyle -> {{2, All} -> Opacity[0.5, Orange]}]DiscretizeRegion[ParametricRegion[{t}, {{t, 0, 2}}], {{0, 10}}, MeshCellStyle -> {{1, 1} -> Directive[Thick, Red], {1, 2} -> Directive[Dashed, Green]}]DiscretizeRegion[ParametricRegion[{t}, {{t, 0, 2}}], {{0, 10}}, MeshCellStyle -> {Line[{1, 2}] -> Directive[Thick, Red], Line[{2, 3}] -> Directive[Dashed, Green]}]MeshRefinementFunction (2)
DiscretizeRegion[Disk[], MeshRefinementFunction -> Function[{vertices, area}, area > 0.0005 * (1 + 10Norm[Mean[vertices]])]]mr = DiscretizeRegion[Line[{{-1}, {1}}],
MaxCellMeasure -> 1, MeshRefinementFunction -> Function[{v, len}, len > .1 * (1 + UnitStep[Max[v]])]]Method (6)
"Continuation"法は,コーナー,尖端,急激な変化を多くの場合にきわめてうまく結合する曲線連続法を使う:
ℛ = ImplicitRegion[-1 + 2 x^2 ≤ y ≤ x^2, {{x, -1, 1}, {y, -1, 1}}];DiscretizeRegion[ℛ, Method -> "Continuation"]"RegionPlot"法はRegionPlotからの出力を向上させることに基づいており,より速いこともある:
ℛ = ImplicitRegion[-1 + 2 x^2 ≤ y ≤ x^2, {{x, -1, 1}, {y, -1, 1}}];DiscretizeRegion[ℛ, Method -> "RegionPlot"]DiscretizeRegion[RegionUnion[Disk[{0, 0}, 1], Disk[{1, 0}, 1]], Method -> "Boolean"]"DiscretizeGraphics"法はグラフィックスプリミティブに最適化されている:
DiscretizeRegion[Disk[], Method -> "DiscretizeGraphics"]3D領域についての"RegionPlot3D"法はRegionPlot3Dに基づいている:
DiscretizeRegion[Ball[], Method -> "RegionPlot3D"]3D領域の"ContourPlot3D"法はContourPlot3Dに基づいている:
DiscretizeRegion[Ball[], Method -> "ContourPlot3D"]PlotTheme (2)
PrecisionGoal (1)
PrecisionGoalを使って離散化境界が厳密な境界に近いものであるようにする:
{ℛ1, ℛ2} = DiscretizeRegion[Disk[], PrecisionGoal -> #]& /@ {2, 5}より高いPrecisionGoalを使った離散化は,真の境界により近い:
1 - Max[Norm[#]& /@ AnnotationValue[{#, {1}}, MeshCellCentroid]]& /@ {ℛ1, ℛ2}アプリケーション (2)
LaminaDataを可視化する:
f = LaminaData["Salinon", "Region"]DiscretizeRegion[f[1, .5]]SolidDataを可視化する:
f = SolidData["CylindricalHalfShell", "Region"]DiscretizeRegion[f[1, .5, 2]]特性と関係 (5)
DiscretizeRegionの出力はMeshRegionである:
ℛ = DiscretizeRegion[Disk[]]MeshRegionQ[ℛ]TriangulateMeshを使ってMeshRegionを再度離散化することができる:
{ℛ = DiscretizeRegion[Disk[], MaxCellMeasure -> 0.1],
TriangulateMesh[ℛ, MaxCellMeasure -> 0.01]}しかし,もとの領域だけを離散化した方が,境界をより正確に離散化することができる:
{DiscretizeRegion[Disk[], MaxCellMeasure -> 0.1], DiscretizeRegion[Disk[], MaxCellMeasure -> 0.01]}DiscretizeRegionは,MeshRegionに適用されるとTriangulateMeshに等しい:
mr = MeshRegion[{{0, 0}, {1, 0}, {1, 1}, {0, 1}}, Polygon[{1, 2, 3, 4}]];
{DiscretizeRegion[mr], TriangulateMesh[mr]}DiscretizeRegionは,穴のある領域を離散化することができる:
DiscretizeRegion[ImplicitRegion[1 ≤ x^2 + y^2 ≤ 4, {x, y}]]DiscretizeRegionは,不連続な成分がある領域を離散化することができる:
DiscretizeRegion[ImplicitRegion[Sin[x y] ≤ 0.2, {x, y}], {{0, 5}, {0, 5}}]おもしろい例題 (2)
DiscretizeRegion[ImplicitRegion[-1 + (-1 + 18 x^2 - 48 x^4 + 32 x^6)^2 + (-1 + 18 y^2 - 48 y^4 + 32 y^6)^2 ≤ 0, {x, y}], MaxCellMeasure -> 0.01]DiscretizeRegion[LaminaData[#, "ImplicitRegion"][1.0], {{-1.1, 1.1}, {-1.1, 1.1}}]& /@ {"AcuraLamina", "HondaLamina", "SubaruLamina", "ToyotaLamina", "MercedesBenzLamina", "VolkswagenLamina"}関連するガイド
-
▪
- メッシュベースの幾何学的領域 ▪
- 幾何学的計算
テキスト
Wolfram Research (2014), DiscretizeRegion, Wolfram言語関数, https://reference.wolfram.com/language/ref/DiscretizeRegion.html (2015年に更新).
CMS
Wolfram Language. 2014. "DiscretizeRegion." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2015. https://reference.wolfram.com/language/ref/DiscretizeRegion.html.
APA
Wolfram Language. (2014). DiscretizeRegion. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DiscretizeRegion.html
BibTeX
@misc{reference.wolfram_2026_discretizeregion, author="Wolfram Research", title="{DiscretizeRegion}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/DiscretizeRegion.html}", note=[Accessed: 04-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_discretizeregion, organization={Wolfram Research}, title={DiscretizeRegion}, year={2015}, url={https://reference.wolfram.com/language/ref/DiscretizeRegion.html}, note=[Accessed: 04-September-2026]}