OpenSCAD - tworzenie bryły o powierzchni 3W powstałej na podstawie wczytanej bitmapy za pomocą funkcji surface

Stronę tą wyświetlono już: 30 razy

Tworzenie bryły o powierzchni 3W powstałej na podstawie pliku png

Funkcja surface pozwala na tworzenie bryły, której siatka powierzchni górnej zależy od koloru pikseli wczytanego pliku png. Przykład użycia tej funkcji można zobaczyć poniżej.

a)OpenSCAD - wygenerowana bryła z bitmapy pngb)OpenSCAD - wygenerowana bryła z bitmapy png przy użyciu funkcji surface z parametrem invert ustawionym na true
Rys. 1

OpenSCAD - wygenerowana bryła z bitmapy png

  1. z domyślnymi ustawieniami

    Listing 1
    1. scale([1, 1, 0.4])
    2. surface(file="Obliczeniowo_logo.png");
  2. z ustawieniem parametru invert na wartość true:

    Listing 2
    1. scale([1, 1, 0.4])
    2. surface(file="Obliczeniowo_logo.png", invert = true);

Każdy piksel bitmapy jest przeliczany do skali odcieni szarości według zależności:

Sposób przeliczania koloru piksela bitmapy na skalę odcieni szarości [1]

Zapis wyrażenia w formacie TeX-a:

Z = 0.2126\cdot R + 0.7152\cdot G + 0.0722\cdot B

Wartości są skalowane tak, aby zawierały się w przedziale od 0 do 100.

Tworzenie bryły o powierzchni opisanej w pliku dat

Możliwe jest również wczytanie wysokości poszczególnych segmentów bryły z pliku dat, gdzie zapisane są w poszczególnych linijkach wysokości. Oto przykładowe dane zapisane w takim pliku:

Listing 3
  1. 1 2 3 4 5 6
  2. 7 8 9 10 11 12
  3. 13 14 15 16 17 18
  4. 19 20 21 22 23 24
  5. 25 26 27 28 29 30

Wynik wczytania takich danych można zobaczyć poniżej.

OpenSCAD wynik wczytania danych z pliku dat za pomocą funkcji surface
Rys. 2

OpenSCAD wynik wczytania danych z pliku dat za pomocą funkcji surface

Listing 4
  1. scale([1, 1, 0.4])
  2. surface(file="file.dat");

Komentarze