17
$\begingroup$

Giacomo Balla (1871 - 1958) was an Italian painter best known as a key proponent of Futurism. In his paintings, he depicted light, movement and speed. Balla's oil painting "Numeri innamorati" (Numbers in love) was created in 1920. The original size of the work is 76,5 x 54 cm.

enter image description here

The best starting point I found was J.M.'s answer to this question:

Strategies for creating 3D text

RegionProduct[DiscretizeGraphics[
  Text[Style["8", FontFamily -> "Alegreya SC"]], _Text, 
  MaxCellMeasure -> 0.1],
 MeshRegion[{{0}, {4}}, Line[{1, 2}]]]

enter image description here

Being unfamiliar with MeshRegions and related functions, I don't know how to proceed from here. I don't want to reproduce the painting, but only extrude the numbers as shown:

  • Black front
  • Grayish, shadowy, diagonal extrusions
  • An appropriate font (the upper parts of 3 and 5 must be flat, not curved)

Thank you in advance for your answers and hints.

$\endgroup$
1

1 Answer 1

19
$\begingroup$
  • Mono fonts seems flat.

  • We use RegionProduct with Point and Line and RegionBoundary.

fonts = BoundaryDiscretizeGraphics[
   Text[Style["8543", 
     FontFamily -> "Bitstream Vera Sans Mono"]], _Text];
above = RegionProduct[fonts, Point[{10.}]];
below = RegionProduct[fonts, Point[{0.}]];
body = RegionProduct[RegionBoundary@fonts, Line[{{0.}, {10.}}]];
Graphics3D[{EdgeForm[], Black, above, Red, below, FaceForm[White], 
  body}, ViewPoint -> {5, 5, 10}, ViewVertical -> {0, 1, 0}, 
 Boxed -> False, Lighting -> "Accent"]

enter image description here

$\endgroup$
2
  • 1
    $\begingroup$ Thank you, cvgmt, such a nice and short (!) solution $\endgroup$
    – eldo
    Dec 12, 2023 at 11:44
  • $\begingroup$ In my Windows 11 system, I only found "Harlow Solid Italic" is flat. fonts = BoundaryDiscretizeGraphics[ Text[Style["8543", FontFamily -> "Harlow Solid Italic", FontSlant -> Plain]], _Text] $\endgroup$
    – cvgmt
    Dec 13, 2023 at 11:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.