Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Muotojen Skaalaus | Geometriset muunnokset
Geometrinen Mallinnus Pythonilla

Muotojen Skaalaus

Pyyhkäise näyttääksesi valikon

Skaalaus on perustavanlaatuinen geometrinen muunnos, joka muuttaa muodon kokoa säilyttäen sen rakenteen. Kun skaalaat geometrisen kuvion, jokainen piste siirtyy lähemmäs tai kauemmas kiinteästä pisteestä, yleensä origosta, tietyn kertoimen mukaan. Tämä prosessi voi olla yhtenäinen, jolloin kaikki ulottuvuudet skaalataan samalla kertoimella, tai epäyhtenäinen, jolloin eri ulottuvuudet skaalataan eri kertoimilla.

Yhtenäisessä skaalaamisessa jokainen pisteen koordinaatti kerrotaan samalla arvolla. Tämä säilyttää muodon mittasuhteet, joten neliö pysyy neliönä ja ympyrä ympyränä—vain suurempana tai pienempänä. Epäyhtenäisessä skaalaamisessa jokaisella koordinaattiakselilla voi olla eri skaalauskerroin. Esimerkiksi suorakulmiota voidaan venyttää vaakasuunnassa pitäen korkeus samana, jolloin siitä tulee leveämpi suorakulmio.

Skaalausmuunnoksia käytetään yleisesti tietokonegrafiikassa, mallinnuksessa ja suunnittelussa objektien koon muuttamiseen tai mittasuhteiden säätämiseen. Kun skaalaat muotoa, sen pinta-ala ja piiri muuttuvat ennustettavalla tavalla: yhtenäisessä skaalaamisessa kertoimella k piiri kerrotaan k:lla ja pinta-ala k:n neliöllä (k^2). Epäyhtenäinen skaalaus voi kuitenkin vääristää muotoa, muuttaen kulmia ja sivujen suhteellisia pituuksia.

12345678910111213141516171819202122232425262728
import numpy as np import matplotlib.pyplot as plt def scale_polygon(vertices, scale_x, scale_y): scale_matrix = np.array([[scale_x, 0], [0, scale_y]]) return vertices @ scale_matrix.T # Define a triangle triangle = np.array([[1, 1], [3, 1], [2, 3], [1, 1]]) # Uniform scaling by factor 2 scaled_uniform = scale_polygon(triangle, 2, 2) # Non-uniform scaling: x by 2, y by 0.5 scaled_nonuniform = scale_polygon(triangle, 2, 0.5) # Plot original and scaled triangles plt.figure(figsize=(6, 6)) plt.plot(triangle[:,0], triangle[:,1], 'o-', label='Original') plt.plot(scaled_uniform[:,0], scaled_uniform[:,1], 'o-', label='Uniform scale (2x)') plt.plot(scaled_nonuniform[:,0], scaled_nonuniform[:,1], 'o-', label='Non-uniform scale (2x, 0.5y)') plt.legend() plt.axis('equal') plt.title('Scaling Transformations of a Triangle') plt.xlabel('X') plt.ylabel('Y') plt.show()
question mark

Mikä seuraavista väittämistä skaalausmuunnoksista on oikein?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 5
some-alt