Реализация анимации сжатия и растяжения в коде: примеры и методы

Выражение «Сжатие и растягивание» — это техника, обычно используемая в анимации для придания объектам более динамичного и эластичного движения. Хотя он обычно связан с программным обеспечением для анимации, его также можно реализовать с помощью кода на различных языках программирования. Вот несколько методов с примерами кода:

  1. 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)';
    });
  2. 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()

Это всего лишь два примера, но вы можете применить концепцию сжатия и растяжения, используя различные другие языки программирования и платформы. Не забудьте адаптировать код к вашим конкретным требованиям.