<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Электронный научно-практический журнал «Современные научные исследования и инновации» &#187; программирование на JavaScript</title>
	<atom:link href="http://web.snauka.ru/issues/tag/programmirovanie-na-javascript/feed" rel="self" type="application/rss+xml" />
	<link>https://web.snauka.ru</link>
	<description></description>
	<lastBuildDate>Fri, 17 Apr 2026 07:29:22 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Создание фигуры с помощью экструдирования</title>
		<link>https://web.snauka.ru/issues/2026/01/104085</link>
		<comments>https://web.snauka.ru/issues/2026/01/104085#comments</comments>
		<pubDate>Thu, 01 Jan 2026 14:30:52 +0000</pubDate>
		<dc:creator>Мухаяров Дильназ Данисович</dc:creator>
				<category><![CDATA[05.00.00 ТЕХНИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[3D-графика]]></category>
		<category><![CDATA[three.js]]></category>
		<category><![CDATA[WebGL]]></category>
		<category><![CDATA[программирование на JavaScript]]></category>
		<category><![CDATA[трехмерное моделирование]]></category>
		<category><![CDATA[экструдирование]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/issues/2026/01/104085</guid>
		<description><![CDATA[Создание трехмерных моделей является важной задачей в области компьютерной графики и веб-разработки. Библиотека Three.js предоставляет мощные инструменты для визуализации и моделирования 3D-объектов непосредственно в браузере. Одним из распространенных методов моделирования является экструдирование — процесс вытягивания двумерных контуров в трехмерное пространство для получения сложных фигур. В данной статье рассматривается применение метода экструдирования для создания фигур в [...]]]></description>
			<content:encoded><![CDATA[<p>Создание трехмерных моделей является важной задачей в области компьютерной графики и веб-разработки. Библиотека Three.js предоставляет мощные инструменты для визуализации и моделирования 3D-объектов непосредственно в браузере. Одним из распространенных методов моделирования является экструдирование — процесс вытягивания двумерных контуров в трехмерное пространство для получения сложных фигур. В данной статье рассматривается применение метода экструдирования для создания фигур в Three.js, описываются основные параметры, настройка и пример реализации.</p>
<p><span>Теоретические основы экструдирования в Three.js<br />
</span></p>
<p><span>Экструдирование — это процесс преобразования двумерных путей или форм в трехмерные объекты путём вытягивания вдоль заданной оси. В библиотеке Three.js для этого используется класс `ExtrudeBufferGeometry`, который принимает профиль формы и параметры экструдирования. Основные параметры включают:<br />
</span></p>
<p><span>- `steps`: количество шагов по оси экструдирования,<br />
</span></p>
<p><span>- `depth`: длина вытягивания,<br />
</span></p>
<p><span>- `bevelEnabled`: включение скругления краев,<br />
</span></p>
<p><span>- `bevelThickness`, `bevelSize`, `bevelSegments`: параметры скругления.<br />
</span></p>
<p><span>Процесс моделирования включает определение формы (Shape), настройку параметров экструдирования и создание геометрии, которая затем используется для построения меша.<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011426_1431_1.png" alt="" /></p>
<p style="text-align: center;"><span style="color: #5b9bd5;"><strong>Рисунок 1. Пример веб-производительности<br />
</strong></span></p>
<p><span>Пример реализации на JavaScript<br />
</span></p>
<p><span>&#8220;`javascript<br />
</span></p>
<p><span>// Создаем сцену, камеру и рендерер<br />
</span></p>
<p><span>const scene = new THREE.Scene();<br />
</span></p>
<p><span>const camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);<br />
</span></p>
<p><span>const renderer = new THREE.WebGLRenderer();<br />
</span></p>
<p><span>renderer.setSize(window.innerWidth, window.innerHeight);<br />
</span></p>
<p><span>document.body.appendChild(renderer.domElement);<br />
</span></p>
<p><span>// Определяем двумерную форму (например, простой квадрат)<br />
</span></p>
<p><span>const shape = new THREE.Shape();<br />
</span></p>
<p><span>shape.moveTo(0, 0);<br />
</span></p>
<p><span>shape.lineTo(0, 1);<br />
</span></p>
<p><span>shape.lineTo(1, 1);<br />
</span></p>
<p><span>shape.lineTo(1, 0);<br />
</span></p>
<p><span>shape.lineTo(0, 0);<br />
</span></p>
<p><span>// Настраиваем параметры экструдирования<br />
</span></p>
<p><span>const extrudeSettings = {<br />
</span></p>
<p style="padding-left: 30px;"><span> steps: 2,<br />
</span></p>
<p style="padding-left: 30px;"><span> depth: 2,<br />
</span></p>
<p style="padding-left: 30px;"><span> bevelEnabled: true,<br />
</span></p>
<p style="padding-left: 30px;"><span> bevelThickness: 0.1,<br />
</span></p>
<p style="padding-left: 30px;"><span> bevelSize: 0.2,<br />
</span></p>
<p style="padding-left: 30px;"><span> bevelSegments: 3<br />
</span></p>
<p><span>};<br />
</span></p>
<p><span>// Создаем геометрию с помощью экструдирования<br />
</span></p>
<p><span>const geometry = new THREE.ExtrudeBufferGeometry(shape, extrudeSettings);<br />
</span></p>
<p><span>// Создаем материал<br />
</span></p>
<p><span>const material = new THREE.MeshNormalMaterial({wireframe: false});<br />
</span></p>
<p><span>// Создаем меш и добавляем его на сцену<br />
</span></p>
<p><span>const mesh = new THREE.Mesh(geometry, material);<br />
</span></p>
<p><span>scene.add(mesh);<br />
</span></p>
<p><span>// Располагаем камеру<br />
</span></p>
<p><span>camera.position.z = 5;<br />
</span></p>
<p><span>// Анимационный цикл<br />
</span></p>
<p><span>function animate() {<br />
</span></p>
<p style="padding-left: 30px;"><span> requestAnimationFrame(animate);<br />
</span></p>
<p style="padding-left: 30px;"><span> mesh.rotation.x += 0.01;<br />
</span></p>
<p style="padding-left: 30px;"><span> mesh.rotation.y += 0.01;<br />
</span></p>
<p style="padding-left: 30px;"><span> renderer.render(scene, camera);<br />
</span></p>
<p><span>}<br />
</span></p>
<p><span>animate();<br />
</span></p>
<p><span>&#8220;<br />
</span></p>
<p><span><strong>Заключение<br />
</strong></span></p>
<p><span>Метод экструдирования с помощью Three.js позволяет быстро создавать сложные трехмерные фигуры из простых двумерных контуров. Его преимущества включают гибкость настройки параметров, возможность моделирования различных форм и интеграцию в веб-приложения. Однако при работе с экструдированными объектами важно учитывать ограничения по сложности геометрии и производительности браузера. Правильный подбор параметров и формы профиля обеспечивает получение качественных и реалистичных моделей</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011426_1431_2.png" alt="" /></p>
<p style="text-align: center;"><span style="color: #5b9bd5;"><strong><span>Рисунок 2. Пример кода с экструдированием</span><span><br />
</span></strong></span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011426_1431_3.png" alt="" /></p>
<p style="text-align: center;"><span style="color: #5b9bd5;"><strong>Рисунок 3</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2026/01/104085/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Создание фигуры с помощью вращения и Three.js</title>
		<link>https://web.snauka.ru/issues/2026/01/104086</link>
		<comments>https://web.snauka.ru/issues/2026/01/104086#comments</comments>
		<pubDate>Wed, 14 Jan 2026 14:50:10 +0000</pubDate>
		<dc:creator>Мухаяров Дильназ Данисович</dc:creator>
				<category><![CDATA[05.00.00 ТЕХНИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[3D-графика]]></category>
		<category><![CDATA[three.js]]></category>
		<category><![CDATA[WebGL]]></category>
		<category><![CDATA[вращение]]></category>
		<category><![CDATA[программирование на JavaScript]]></category>
		<category><![CDATA[трехмерное моделирование]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/issues/2026/01/104086</guid>
		<description><![CDATA[Создание сложных трехмерных фигур является одной из фундаментальных задач в области компьютерной графики и веб-разработки. Библиотека Three.js предоставляет инструменты для моделирования и визуализации объектов в браузере. Одним из эффективных методов моделирования является вращение — процесс вращения двумерных профилей вокруг оси для получения объемных фигур. В данной статье рассматривается применение метода вращения в Three.js, его основные [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Создание сложных трехмерных фигур является одной из фундаментальных задач в области компьютерной графики и веб-разработки. Библиотека Three.js предоставляет инструменты для моделирования и визуализации объектов в браузере. Одним из эффективных методов моделирования является вращение — процесс вращения двумерных профилей вокруг оси для получения объемных фигур. В данной статье рассматривается применение метода вращения в Three.js, его основные параметры, особенности реализации и практические примеры.</p>
<p style="text-align: justify;"><span>Теоретические основы метода вращения в Three.js<br />
</span></p>
<p style="text-align: justify;"><span>Метод вращения основан на формировании трехмерной формы путем вращения двумерного контура или профиля вокруг оси (обычно оси Y). В библиотеке Three.js для этого используется класс `LatheBufferGeometry`, который принимает массив точек профиля и параметры вращения. Основные параметры включают:<br />
</span></p>
<p style="text-align: justify;"><span>- `segments`: число сегментов по окружности, определяющее гладкость поверхности,<br />
</span></p>
<p style="text-align: justify;"><span>- `phiStart` и `phiLength`: начальный угол и длина сектора вращения,<br />
</span></p>
<p style="text-align: justify;"><span>- `points`: массив точек профиля, задающих форму.<br />
</span></p>
<p style="text-align: justify;"><span>Процесс моделирования включает создание массива точек, определяющих профиль, и последующее вращение этого профиля вокруг оси для формирования объемной модели.<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011426_1447_1.png" alt="" /></p>
<p style="text-align: center;"><span style="color: #5b9bd5;"><strong>Рисунок 1<br />
</strong></span></p>
<p style="text-align: justify;"><span>Пример реализации на JavaScript<br />
</span></p>
<p style="text-align: justify;"><span>&#8220;`javascript<br />
</span></p>
<p style="text-align: justify;"><span>// Создаем сцену, камеру и рендерер<br />
</span></p>
<p style="text-align: justify;"><span>const scene = new THREE.Scene();<br />
</span></p>
<p style="text-align: justify;"><span>const camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);<br />
</span></p>
<p style="text-align: justify;"><span>const renderer = new THREE.WebGLRenderer();<br />
</span></p>
<p style="text-align: justify;"><span>renderer.setSize(window.innerWidth, window.innerHeight);<br />
</span></p>
<p style="text-align: justify;"><span>document.body.appendChild(renderer.domElement);<br />
</span></p>
<p style="text-align: justify;"><span>// Определяем профиль с помощью массива точек<br />
</span></p>
<p style="text-align: justify;"><span>const points = [];<br />
</span></p>
<p style="text-align: justify;"><span>points.push(new THREE.Vector2(0, 0));<br />
</span></p>
<p style="text-align: justify;"><span>points.push(new THREE.Vector2(1, 0));<br />
</span></p>
<p style="text-align: justify;"><span>points.push(new THREE.Vector2(1.5, 1));<br />
</span></p>
<p style="text-align: justify;"><span>points.push(new THREE.Vector2(1, 2));<br />
</span></p>
<p style="text-align: justify;"><span>points.push(new THREE.Vector2(0, 2));<br />
</span></p>
<p style="text-align: justify;"><span>// Создаем геометрию вращением<br />
</span></p>
<p style="text-align: justify;"><span>const geometry = new THREE.LatheBufferGeometry(points, 32, 0, Math.PI * 2);<br />
</span></p>
<p style="text-align: justify;"><span>// Создаем материал<br />
</span></p>
<p style="text-align: justify;"><span>const material = new THREE.MeshNormalMaterial({wireframe: false});<br />
</span></p>
<p style="text-align: justify;"><span>// Создаем меш и добавляем на сцену<br />
</span></p>
<p style="text-align: justify;"><span>const mesh = new THREE.Mesh(geometry, material);<br />
</span></p>
<p style="text-align: justify;"><span>scene.add(mesh);<br />
</span></p>
<p style="text-align: justify;"><span>// Располагаем камеру<br />
</span></p>
<p style="text-align: justify;"><span>camera.position.z = 5;<br />
</span></p>
<p style="text-align: justify;"><span>// Анимационный цикл<br />
</span></p>
<p style="text-align: justify;"><span>function animate() {<br />
</span></p>
<p style="text-align: justify; padding-left: 30px;"><span> requestAnimationFrame(animate);<br />
</span></p>
<p style="text-align: justify; padding-left: 30px;"><span> mesh.rotation.y += 0.01;<br />
</span></p>
<p style="text-align: justify; padding-left: 30px;"><span> renderer.render(scene, camera);<br />
</span></p>
<p style="text-align: justify;"><span>}<br />
</span></p>
<p style="text-align: justify;"><span>animate();<br />
</span></p>
<p style="text-align: justify;"><span>&#8220;`<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011426_1447_2.png" alt="" /></p>
<p style="text-align: center;"><span style="color: #5b9bd5;"><strong><span>Рисунок 2</span><span><br />
</span></strong></span></p>
<p style="text-align: justify;"><span><strong>Заключение<br />
</strong></span></p>
<p style="text-align: justify;"><span>Метод вращения с помощью `LatheBufferGeometry` в Three.js позволяет создавать разнообразные объемные фигуры из простых профилей. Его преимущество — возможность моделирования сложных форм с минимальными усилиями и высокой гибкостью. Однако при работе важно правильно подбирать профиль и параметры сегментов для достижения желаемого качества поверхности. Использование метода вращения широко применяется в моделировании предметов, техники, ювелирных изделий и архитектурных элементов.</span></p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2026/01/104086/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
