Skip to main content
added 18 characters in body
Source Link
kglr
  • 400.5k
  • 18
  • 488
  • 929

enter image description hereenter image description here

Using the approach from this answer to construct the polygons and lines:

cp = Map[Prepend[0]]@Delete[{{3}, {6}}]@CirclePoints[{1, Pi/3}, 6];

coords = Table[Map[RotateRight[#, i - 1] &]@cp, {i, 3}];

colors = {RGBColor[1, .5, .5], RGBColor[1, 1, .5], RGBColor[.5, 1, .5]};

Transform text primitives to 3D coordinates by processing the output from BoundaryDiscretizeGraphics:

ClearAll[textCoords]
textCoords[string_, cbounds_ : {{-1/2, 1/2}, {1/2, 5/6}}, padding_ : .2] := 
  Module[{tc = (MeshPrimitives[
         BoundaryDiscretizeGraphics[Text[string], _Text], 1, 
         Multicells -> True] /. Line[x_] :> Line[Join @@ x])[[All, 1]]}, 
    Map[Map[Prepend[0] @* 
     RescalingTransform[(1 + padding) CoordinateBounds @ tc, cbounds]]] @ tc];

labels = {"2nd Mathematical Olympiad", "B C M H K", "2023"};

textcoordinates = MapIndexed[{x, y} |-> 
   Map[Map[RotateRight[#, -1 + First @ y] &]][
      textCoords[Style[x, FontFamily -> "Times"]]]] @ labels;

show = Show[Graphics3D @
   Thread[{AbsoluteThickness[1/2], Black, Map[Line] @ textcoordinates, 
     colors, Lighting -> {{"Ambient", White}}, Polygon /@ coords}], 
  MeshConnectivityGraph @ ConvexHullRegion[Join @@ coords], 
  SphericalRegion -> True, Boxed -> False, 
  PlotRange -> .91, ImageSize -> Large]Large, ImagePadding -> 5]

enter image description hereenter image description here

Animation above produced using

rotate[angle_, axis_] := MapAt[Rotate[#, angle, UnitVector[3, axis]] &, {1}]

frames = Join @@ Table[rotate[2 Pi t, a]@show, {a, 1, 3, 1}, {t, 0, 1, 1/18}];

Export["MathOlympiad.gif", frames]

Notes:

$Version
"13.3.0 for Linux x86 (64-bit) (June 3, 2023)"

Ignore the red syntax highlighting of Multicells -> True.

enter image description here

Using the approach from this answer to construct the polygons and lines:

cp = Map[Prepend[0]]@Delete[{{3}, {6}}]@CirclePoints[{1, Pi/3}, 6];

coords = Table[Map[RotateRight[#, i - 1] &]@cp, {i, 3}];

colors = {RGBColor[1, .5, .5], RGBColor[1, 1, .5], RGBColor[.5, 1, .5]};

Transform text primitives to 3D coordinates by processing the output from BoundaryDiscretizeGraphics:

ClearAll[textCoords]
textCoords[string_, cbounds_ : {{-1/2, 1/2}, {1/2, 5/6}}, padding_ : .2] := 
  Module[{tc = (MeshPrimitives[
         BoundaryDiscretizeGraphics[Text[string], _Text], 1, 
         Multicells -> True] /. Line[x_] :> Line[Join @@ x])[[All, 1]]}, 
    Map[Map[Prepend[0] @* 
     RescalingTransform[(1 + padding) CoordinateBounds @ tc, cbounds]]] @ tc];

labels = {"2nd Mathematical Olympiad", "B C M H K", "2023"};

textcoordinates = MapIndexed[{x, y} |-> 
   Map[Map[RotateRight[#, -1 + First @ y] &]][
      textCoords[Style[x, FontFamily -> "Times"]]]] @ labels;

show = Show[Graphics3D @
   Thread[{AbsoluteThickness[1/2], Black, Map[Line] @ textcoordinates, 
     colors, Lighting -> {{"Ambient", White}}, Polygon /@ coords}], 
  MeshConnectivityGraph @ ConvexHullRegion[Join @@ coords], 
  SphericalRegion -> True, Boxed -> False, 
  PlotRange -> .9, ImageSize -> Large]

enter image description here

Animation above produced using

rotate[angle_, axis_] := MapAt[Rotate[#, angle, UnitVector[3, axis]] &, {1}]

frames = Join @@ Table[rotate[2 Pi t, a]@show, {a, 1, 3, 1}, {t, 0, 1, 1/18}];

Export["MathOlympiad.gif", frames]

Notes:

$Version
"13.3.0 for Linux x86 (64-bit) (June 3, 2023)"

Ignore the red syntax highlighting of Multicells -> True.

enter image description here

Using the approach from this answer to construct the polygons and lines:

cp = Map[Prepend[0]]@Delete[{{3}, {6}}]@CirclePoints[{1, Pi/3}, 6];

coords = Table[Map[RotateRight[#, i - 1] &]@cp, {i, 3}];

colors = {RGBColor[1, .5, .5], RGBColor[1, 1, .5], RGBColor[.5, 1, .5]};

Transform text primitives to 3D coordinates by processing the output from BoundaryDiscretizeGraphics:

ClearAll[textCoords]
textCoords[string_, cbounds_ : {{-1/2, 1/2}, {1/2, 5/6}}, padding_ : .2] := 
  Module[{tc = (MeshPrimitives[
         BoundaryDiscretizeGraphics[Text[string], _Text], 1, 
         Multicells -> True] /. Line[x_] :> Line[Join @@ x])[[All, 1]]}, 
    Map[Map[Prepend[0] @* 
     RescalingTransform[(1 + padding) CoordinateBounds @ tc, cbounds]]] @ tc];

labels = {"2nd Mathematical Olympiad", "B C M H K", "2023"};

textcoordinates = MapIndexed[{x, y} |-> 
   Map[Map[RotateRight[#, -1 + First @ y] &]][
      textCoords[Style[x, FontFamily -> "Times"]]]] @ labels;

show = Show[Graphics3D @
   Thread[{AbsoluteThickness[1/2], Black, Map[Line] @ textcoordinates, 
     colors, Lighting -> {{"Ambient", White}}, Polygon /@ coords}], 
  MeshConnectivityGraph @ ConvexHullRegion[Join @@ coords], 
  SphericalRegion -> True, Boxed -> False, 
  PlotRange -> 1, ImageSize -> Large, ImagePadding -> 5]

enter image description here

Animation above produced using

rotate[angle_, axis_] := MapAt[Rotate[#, angle, UnitVector[3, axis]] &, {1}]

frames = Join @@ Table[rotate[2 Pi t, a]@show, {a, 1, 3, 1}, {t, 0, 1, 1/18}];

Export["MathOlympiad.gif", frames]

Notes:

$Version
"13.3.0 for Linux x86 (64-bit) (June 3, 2023)"

Ignore the red syntax highlighting of Multicells -> True.

added 43 characters in body
Source Link
kglr
  • 400.5k
  • 18
  • 488
  • 929

enter image description hereenter image description here

Using the approach from this answer to construct the polygons and lines:

cp = Map[Prepend[0]]@Delete[{{3}, {6}}]@CirclePoints[{1, Pi/3}, 6];

coords = Table[Map[RotateRight[#, i - 1] &]@cp, {i, 3}];

colors = {RGBColor[1, .5, .5], RGBColor[1, 1, .5], RGBColor[.5, 1, .5]};

Transform text primitives to 3D coordinates by processing the output from BoundaryDiscretizeGraphics:

ClearAll[textCoords]
textCoords[string_, cbounds_ : {{-1/2, 1/2}, {1/2, 5/6}}, padding_ : .2] := 
  Module[{tc = (MeshPrimitives[
         BoundaryDiscretizeGraphics[Text[string], _Text], 1, 
         Multicells -> True] /. Line[x_] :> Line[Join @@ x])[[All, 1]]}, 
    Map[Map[Prepend[0] @* 
     RescalingTransform[(1 + padding) CoordinateBounds @ tc, cbounds]]] @ tc];

labels = {"2nd Mathematical Olympiad", "B C M H K", "2023"};

textcoordinates = MapIndexed[{x, y} |-> 
   Map[Map[RotateRight[#, -1 + First @ y] &]][
      textCoords[Style[x, FontFamily -> "Times"]]]] @ labels;

show = Show[Graphics3D @
   Thread[{AbsoluteThickness[1/2], Black, Map[Line] @ textcoordinates, 
     colors, Lighting -> {{"Ambient", White}}, Polygon /@ coords}], 
  MeshConnectivityGraph @ ConvexHullRegion[Join @@ coords], 
  SphericalRegion -> True, Boxed -> False]False, 
  PlotRange -> .9, ImageSize -> Large]

enter image description hereenter image description here

Animation above produced using

rotate[angle_, axis_] := MapAt[Rotate[#, angle, UnitVector[3, axis]] &, {1}]

frames = Join @@ Table[rotate[2 Pi t, a]@show, {a, 1, 3, 1}, {t, 0, 1, 1/2018}];

Export["MathOlympiad.gif", frames]

Notes:

$Version
"13.3.0 for Linux x86 (64-bit) (June 3, 2023)"

Ignore the red syntax highlighting of Multicells -> True.

enter image description here

Using the approach from this answer to construct the polygons and lines:

cp = Map[Prepend[0]]@Delete[{{3}, {6}}]@CirclePoints[{1, Pi/3}, 6];

coords = Table[Map[RotateRight[#, i - 1] &]@cp, {i, 3}];

colors = {RGBColor[1, .5, .5], RGBColor[1, 1, .5], RGBColor[.5, 1, .5]};

Transform text primitives to 3D coordinates by processing the output from BoundaryDiscretizeGraphics:

ClearAll[textCoords]
textCoords[string_, cbounds_ : {{-1/2, 1/2}, {1/2, 5/6}}, padding_ : .2] := 
  Module[{tc = (MeshPrimitives[
         BoundaryDiscretizeGraphics[Text[string], _Text], 1, 
         Multicells -> True] /. Line[x_] :> Line[Join @@ x])[[All, 1]]}, 
    Map[Map[Prepend[0] @* 
     RescalingTransform[(1 + padding) CoordinateBounds @ tc, cbounds]]] @ tc];

labels = {"2nd Mathematical Olympiad", "B C M H K", "2023"};

textcoordinates = MapIndexed[{x, y} |-> 
   Map[Map[RotateRight[#, -1 + First @ y] &]][
      textCoords[Style[x, FontFamily -> "Times"]]]] @ labels;

show = Show[Graphics3D @
   Thread[{AbsoluteThickness[1/2], Black, Map[Line] @ textcoordinates, 
     colors, Lighting -> {{"Ambient", White}}, Polygon /@ coords}], 
  MeshConnectivityGraph @ ConvexHullRegion[Join @@ coords], 
  SphericalRegion -> True, Boxed -> False]

enter image description here

Animation above produced using

rotate[angle_, axis_] := MapAt[Rotate[#, angle, UnitVector[3, axis]] &, {1}]

frames = Join @@ Table[rotate[2 Pi t, a]@show, {a, 1, 3, 1}, {t, 0, 1, 1/20}];

Export["MathOlympiad.gif", frames]

enter image description here

Using the approach from this answer to construct the polygons and lines:

cp = Map[Prepend[0]]@Delete[{{3}, {6}}]@CirclePoints[{1, Pi/3}, 6];

coords = Table[Map[RotateRight[#, i - 1] &]@cp, {i, 3}];

colors = {RGBColor[1, .5, .5], RGBColor[1, 1, .5], RGBColor[.5, 1, .5]};

Transform text primitives to 3D coordinates by processing the output from BoundaryDiscretizeGraphics:

ClearAll[textCoords]
textCoords[string_, cbounds_ : {{-1/2, 1/2}, {1/2, 5/6}}, padding_ : .2] := 
  Module[{tc = (MeshPrimitives[
         BoundaryDiscretizeGraphics[Text[string], _Text], 1, 
         Multicells -> True] /. Line[x_] :> Line[Join @@ x])[[All, 1]]}, 
    Map[Map[Prepend[0] @* 
     RescalingTransform[(1 + padding) CoordinateBounds @ tc, cbounds]]] @ tc];

labels = {"2nd Mathematical Olympiad", "B C M H K", "2023"};

textcoordinates = MapIndexed[{x, y} |-> 
   Map[Map[RotateRight[#, -1 + First @ y] &]][
      textCoords[Style[x, FontFamily -> "Times"]]]] @ labels;

show = Show[Graphics3D @
   Thread[{AbsoluteThickness[1/2], Black, Map[Line] @ textcoordinates, 
     colors, Lighting -> {{"Ambient", White}}, Polygon /@ coords}], 
  MeshConnectivityGraph @ ConvexHullRegion[Join @@ coords], 
  SphericalRegion -> True, Boxed -> False, 
  PlotRange -> .9, ImageSize -> Large]

enter image description here

Animation above produced using

rotate[angle_, axis_] := MapAt[Rotate[#, angle, UnitVector[3, axis]] &, {1}]

frames = Join @@ Table[rotate[2 Pi t, a]@show, {a, 1, 3, 1}, {t, 0, 1, 1/18}];

Export["MathOlympiad.gif", frames]

Notes:

$Version
"13.3.0 for Linux x86 (64-bit) (June 3, 2023)"

Ignore the red syntax highlighting of Multicells -> True.

added 84 characters in body
Source Link
kglr
  • 400.5k
  • 18
  • 488
  • 929

enter image description here

Using the approach from this answer to construct the polygons and lines:

cp = Map[Prepend[0]]@Delete[{{3}, {6}}]@CirclePoints[{1, Pi/3}, 6];

coords = Table[Map[RotateRight[#, i - 1] &]@cp, {i, 3}];

colors = {RGBColor[1, .5, .5], RGBColor[1, 1, .5], RGBColor[.5, 1, .5]};

Transform text primitives to 3D coordinates by processing the output from BoundaryDiscretizeGraphics:

ClearAll[textCoords]
textCoords[string_, cbounds_ : {{-1/2, 1/2}, {1/2, 5/6}}, padding_ : .2] := 
  Module[{tc = (MeshPrimitives[
         BoundaryDiscretizeGraphics[Text[string], _Text], 1, 
         Multicells -> True] /. Line[x_] :> Line[Join @@ x])[[All, 1]]}, 
    Map[Map[Prepend[0] @* 
     RescalingTransform[(1 + padding) CoordinateBounds @ tc, cbounds]]] @ tc];

labels = {"2nd Mathematical Olympiad", "B C M H K", "2023"};

textcoordinates = MapIndexed[{x, y} |-> 
   Map[Map[RotateRight[#, -1 + First @ y] &]][
      textCoords[Style[x, FontFamily -> "Times"]]]] @ labels;

show = Show[Graphics3D @
   Thread[{AbsoluteThickness[1/2], Black, Map[Line] @ textcoordinates, 
     colors, Lighting -> {{"Ambient", White}}, Polygon /@ coords}], 
  MeshConnectivityGraph @ ConvexHullRegion[Join @@ coords], 
  SphericalRegion -> True, Boxed -> False]

enter image description here

Animation above produced using

rotate[angle_, axis_] := MapAt[Rotate[#, angle, UnitVector[3, axis]] &, {1}]

frames = Join @@ Table[rotate[2 Pi t, a]@show, {a, 1, 3, 1}, {t, 0, 1, 1/20}];

Export["MathOlympiad.gif", frames]

enter image description here

Using the approach from this answer to construct the polygons and lines:

cp = Map[Prepend[0]]@Delete[{{3}, {6}}]@CirclePoints[{1, Pi/3}, 6];

coords = Table[Map[RotateRight[#, i - 1] &]@cp, {i, 3}];

colors = {RGBColor[1, .5, .5], RGBColor[1, 1, .5], RGBColor[.5, 1, .5]};

Transform text primitives to 3D coordinates by processing the output from BoundaryDiscretizeGraphics:

ClearAll[textCoords]
textCoords[string_, cbounds_ : {{-1/2, 1/2}, {1/2, 5/6}}, padding_ : .2] := 
  Module[{tc = (MeshPrimitives[
         BoundaryDiscretizeGraphics[Text[string], _Text], 1, 
         Multicells -> True] /. Line[x_] :> Line[Join @@ x])[[All, 1]]}, 
    Map[Map[Prepend[0] @* 
     RescalingTransform[(1 + padding) CoordinateBounds @ tc, cbounds]]] @ tc];

labels = {"2nd Mathematical Olympiad", "B C M H K", "2023"};

textcoordinates = MapIndexed[{x, y} |-> 
   Map[Map[RotateRight[#, -1 + First @ y] &]][
      textCoords[Style[x, FontFamily -> "Times"]]]] @ labels;

show = Show[Graphics3D @
   Thread[{AbsoluteThickness[1/2], Black, Map[Line] @ textcoordinates, 
     colors, Lighting -> {{"Ambient", White}}, Polygon /@ coords}], 
  MeshConnectivityGraph @ ConvexHullRegion[Join @@ coords], 
  SphericalRegion -> True, Boxed -> False]

enter image description here

Animation above produced using

frames = Join @@ Table[rotate[2 Pi t, a]@show, {a, 1, 3, 1}, {t, 0, 1, 1/20}];

Export["MathOlympiad.gif", frames]

enter image description here

Using the approach from this answer to construct the polygons and lines:

cp = Map[Prepend[0]]@Delete[{{3}, {6}}]@CirclePoints[{1, Pi/3}, 6];

coords = Table[Map[RotateRight[#, i - 1] &]@cp, {i, 3}];

colors = {RGBColor[1, .5, .5], RGBColor[1, 1, .5], RGBColor[.5, 1, .5]};

Transform text primitives to 3D coordinates by processing the output from BoundaryDiscretizeGraphics:

ClearAll[textCoords]
textCoords[string_, cbounds_ : {{-1/2, 1/2}, {1/2, 5/6}}, padding_ : .2] := 
  Module[{tc = (MeshPrimitives[
         BoundaryDiscretizeGraphics[Text[string], _Text], 1, 
         Multicells -> True] /. Line[x_] :> Line[Join @@ x])[[All, 1]]}, 
    Map[Map[Prepend[0] @* 
     RescalingTransform[(1 + padding) CoordinateBounds @ tc, cbounds]]] @ tc];

labels = {"2nd Mathematical Olympiad", "B C M H K", "2023"};

textcoordinates = MapIndexed[{x, y} |-> 
   Map[Map[RotateRight[#, -1 + First @ y] &]][
      textCoords[Style[x, FontFamily -> "Times"]]]] @ labels;

show = Show[Graphics3D @
   Thread[{AbsoluteThickness[1/2], Black, Map[Line] @ textcoordinates, 
     colors, Lighting -> {{"Ambient", White}}, Polygon /@ coords}], 
  MeshConnectivityGraph @ ConvexHullRegion[Join @@ coords], 
  SphericalRegion -> True, Boxed -> False]

enter image description here

Animation above produced using

rotate[angle_, axis_] := MapAt[Rotate[#, angle, UnitVector[3, axis]] &, {1}]

frames = Join @@ Table[rotate[2 Pi t, a]@show, {a, 1, 3, 1}, {t, 0, 1, 1/20}];

Export["MathOlympiad.gif", frames]
deleted 21 characters in body
Source Link
kglr
  • 400.5k
  • 18
  • 488
  • 929
Loading
Source Link
kglr
  • 400.5k
  • 18
  • 488
  • 929
Loading