Выражение «Сжатие и растягивание» — это техника, обычно используемая в анимации для придания объектам более динамичного и эластичного движения. Хотя он обычно связан с программным обеспечением для анимации, его также можно реализовать с помощью кода на различных языках программирования. Вот несколько методов с примерами кода:
-
JavaScript с CSS:
// HTML <div id="object"></div> // CSS #object { width: 100px; height: 100px; background-color: red; transition: all 0.3s ease; } // JavaScript const object = document.getElementById('object'); object.addEventListener('mouseover', function() { this.style.transform = 'scale(1.2)'; }); object.addEventListener('mouseout', function() { this.style.transform = 'scale(1)'; }); -
Python с Pygame:
import pygame # Initialize Pygame pygame.init() # Set up the display screen = pygame.display.set_mode((400, 400)) clock = pygame.time.Clock() # Create an object object_rect = pygame.Rect(100, 100, 100, 100) color = pygame.Color('red') # Main game loop running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Apply squash & stretch mouse_pos = pygame.mouse.get_pos() distance = abs(mouse_pos[0] - object_rect.centerx) scale_factor = 1 + distance / 200 object_rect.width = 100 * scale_factor object_rect.height = 100 / scale_factor # Draw the object screen.fill(pygame.Color('white')) pygame.draw.rect(screen, color, object_rect) pygame.display.flip() clock.tick(60) # Quit the game pygame.quit()
Это всего лишь два примера, но вы можете применить концепцию сжатия и растяжения, используя различные другие языки программирования и платформы. Не забудьте адаптировать код к вашим конкретным требованиям.