document.addEventListener("DOMContentLoaded", function () { const canvas = document.createElement("canvas"); canvas.style.position = "fixed"; canvas.style.top = "0"; canvas.style.left = "0"; canvas.style.pointerEvents = "none"; canvas.style.zIndex = "9999"; document.body.appendChild(canvas); const ctx = canvas.getContext("2d"); let width = window.innerWidth + 100; let height = window.innerHeight; canvas.width = width; canvas.height = height; const flakes = []; // Загружаем изображения для снежинок const snowflakeImages = ["/sneg.png", "/sneg2.png"]; const snowflakes = []; let img1 = new Image(); img1.src = snowflakeImages[0]; let img2 = new Image(); img2.src = snowflakeImages[1]; // Создаем снежинку с отклонением по горизонтали function createFlake() { const randomImage = Math.random() > 0.5 ? img1 : img2; // Выбираем случайное изображение return { x: Math.random() * width, y: Math.random() * height * 0.5, // Появление снежинок в верхней половине экрана image: randomImage, // Присваиваем изображение width: 13 + Math.random() * 5, // Ширина изображения снежинки height: 13 + Math.random() * 5, // Высота изображения снежинки speed: Math.random() * 5 + 0.5, // Скорость падения direction: (Math.random() - 0.5) * 2, // Направление горизонтального отклонения (-1 до 1) drift: Math.random() * 0.5 - 0.1, // Медленное горизонтальное отклонение со временем }; } // Рисуем снежинки function drawFlakes() { ctx.clearRect(0, 0, width, height); // Очистить экран // Рисуем падающие снежинки flakes.forEach((flake) => { ctx.drawImage(flake.image, flake.x, flake.y, flake.width, flake.height); }); } // Двигаем снежинки с эффектом отскока от краев function moveFlakes() { flakes.forEach((flake, index) => { flake.y += flake.speed; // Падение вниз flake.x += flake.direction + flake.drift; // Горизонтальное отклонение // Отскок при достижении левого или правого края экрана if (flake.x < 0 || flake.x > width) { flake.direction = -flake.direction; // Меняем направление на противоположное // Плавное возвращение к центру экрана flake.x = Math.min(Math.max(flake.x, 0), width); } // Если снежинка выходит за нижнюю границу экрана, перемещаем её обратно в верхнюю часть if (flake.y > height) { flake.y = -flake.height; // Переходит в верхнюю часть flake.x = Math.random() * width; // Новая случайная позиция по горизонтали } }); // Добавляем новые снежинки, чтобы поддерживать их количество while (flakes.length < 100) { // Поддерживаем количество снежинок flakes.push(createFlake()); } } // Анимация function loop() { drawFlakes(); moveFlakes(); requestAnimationFrame(loop); } // Инициализация снежинок for (let i = 0; i < 100; i++) { flakes.push(createFlake()); } // Адаптация к изменению размера окна window.addEventListener("resize", () => { width = window.innerWidth + 100; height = window.innerHeight; canvas.width = width; canvas.height = height; }); loop(); });
Flowers
Flowers

NEOCLASSICAL DECORATIVE MOLDING

 

Decorative moldings in the neoclassical style have sophistication, elegance and luxury. They are an important part of the architectural design in neoclassical terrier design and add sophistication and character to the space. Here are some characteristics and examples of neoclassical decorative moldings:
Classic shell molding: This is one of the most common types of neoclassical moldings. It has graceful curves and ornaments that add grace to walls and ceilings.
Greek molding: Greek style is often used in neoclassical design. It includes simple geometric shapes such as rectangles and triangles and is widely used to create ornamental details on walls and ceilings.
Rosettes and medallions: Rosettes and medallions are great additions to a neoclassical interior. They are installed on the ceiling and serve as a central element that attracts attention.
Cornices and window sills: Neoclassical style cornices and window sills usually have simple but graceful shapes. They add a finishing touch to the windows and emphasize the classic character of the space.
Pilasters and columns: Pilasters and columns are important architectural elements in the neoclassical style. They are used to create structural decoration and can be used on their own or as support for architectural features such as arches or balconies.
Decorative Panels: Neoclassical style decorative panels can mimic carved wood or stone structural details. They can be used to frame walls or create accent areas in a room.
When choosing decorative moldings in a neoclassical style, it is recommended to consider the following factors:
Materials: Decorative moldings can be made from a variety of materials, including polyurethane, wood, plaster, and resin composites. The choice of material depends on the budget, visual preferences and operating conditions.
Size and scale: Consider the size and scale of the room when choosing moldings. Larger moldings can be an appropriate choice for high ceilings and spacious rooms, while narrower moldings are recommended for smaller spaces to avoid congestion.
Style and ornaments: Neoclassical style favors moderate ornamental details and harmonious forms. Choose moldings with simple yet subtle patterns to match the overall aesthetic of the style.
Installation: When purchasing decorative moldings, make sure you have the ability or access to professionals to install them. Installing moldings may require certain skills and tools.
Colour: Moldings are usually painted to match the color of the walls or ceiling, but contrasting shades can also be used to create interesting details. Think about the color scheme of your interior and choose moldings that will blend in with the rest of the elements.
It is important to note that in the neoclassical style, details and proportions play an important role. Therefore, it is recommended to contact professionals or designers for specific advice and assistance in choosing decorative moldings for your neoclassical interior.

© Molding. All rights reserved