• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyskalowanie Tekstury w SFML

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
438 wizyt
pytanie zadane 7 lutego 2016 w C i C++ przez zmiennoimienny Mądrala (5,540 p.)
Witam
Zmagam się z pewnym problemem, mianowicie:
W jaki sposób wyskalować Teksture w SFML? (nie mówię tu o .setScale)  
Przykładowo:
Wejście - Tekstura 20x20
Wyjście - Tekstura 100x100.
W jaki sposób to wykonać?

1 odpowiedź

–1 głos
odpowiedź 7 lutego 2016 przez jegor377 Stary wyjadacz (13,230 p.)

Nie wiem czy o to Ci chodzi, ale znajdziesz coś o skalowaniu sprita pod "Skalowanie sprajta" - http://cpp0x.pl/kursy/Kurs-SFML-2-x-C++/Podstawy/Przemieszczanie-skalowanie-i-obracanie-sprajtow/484

 

Skalowanie sprajta

Klasa sf::Sprite posiada następujące metody do skalowania:

C/C++

void setScale( float factorX, float factorY );
void setScale( const Vector2f & factors );

void scale( const Vector2f & factor )
void scale( float factorX, float factorY );

const Vector2f & getScale() const;

Jak można zauważyć, SFML pozwala na modyfikowanie wysokości i szerokości obiektu niezależnie od siebie.

Ustawianie skali - metody setScale

setScale ustawia skalowanie obiektu względem oryginalnych rozmiarów.

C/C++

sprajt.setScale( 1, 2 );
sprajt.setScale( sf::Vector2f( 0.5, 0.5 ) );

W pierwszej linii szerokość sprajta pozostaje bez zmian, a wysokość jest 2 razy większa. W drugiej, szerokość i wysokość są 2 razy mniejsze.

Aktualna skala - metoda getScale

Metoda getScale zwraca aktualną skalę w formie obiektu sf::Vector2f. Domyślna skala to 1, 1.

Modyfikowanie skali - metody scale

Metody scale skalują poprzednio wyskalowany obiekt.

C/C++

sprajt.setScale( 1, 2 );
sprajt.scale( 2, 1 );
sprajt.scale( sf::Vector2f( 0.5, 0.5 ) );

Po wykonaniu tego kodu, obraz będzie w naturalnych rozmiarach, ponieważ 1 * 2 * 0.5 = 1.
Oba poniższe zapisy są równoważne:

C/C++

sprajt.scale( 2, 3 );
sprajt.setScale( sprajt.getScale().* 2, sprajt.getScale().* 3 );

komentarz 7 lutego 2016 przez pietrzakacper Mądrala (7,480 p.)
Napisał, że nie chodzi mu o .setScale()
komentarz 7 lutego 2016 przez jegor377 Stary wyjadacz (13,230 p.)
aaa, nie patrzę. Zmęczony jestem. Sry.
komentarz 7 lutego 2016 przez jegor377 Stary wyjadacz (13,230 p.)
to co on chce zrobić? Przecież ta metoda robi dokładnie to co on chce... :/
komentarz 7 lutego 2016 przez pietrzakacper Mądrala (7,480 p.)

Chodzi mu o taką funkcję:

sf::Texture getScaledTexture(const sf::Texture & texture, Vector2f scale)

 

Podobne pytania

0 głosów
0 odpowiedzi 254 wizyt
pytanie zadane 26 sierpnia 2020 w Systemy operacyjne, programy przez PanPrezes Obywatel (1,520 p.)
0 głosów
1 odpowiedź 288 wizyt
pytanie zadane 24 kwietnia 2016 w C i C++ przez Munvik Dyskutant (9,350 p.)
+1 głos
1 odpowiedź 1,542 wizyt

93,188 zapytań

142,204 odpowiedzi

322,027 komentarzy

62,515 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2581p. - dia-Chann
  2. 2537p. - Łukasz Piwowar
  3. 2528p. - Łukasz Eckert
  4. 2514p. - CC PL
  5. 2476p. - Tomasz Bielak
  6. 2445p. - Łukasz Siedlecki
  7. 2443p. - rucin93
  8. 2418p. - Michal Drewniak
  9. 2373p. - Marcin Putra
  10. 2367p. - Adrian Wieprzkowicz
  11. 2317p. - Mikbac
  12. 2156p. - Anonim 3619784
  13. 2016p. - Michał Telesz
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...