<?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; матричные преобразования</title>
	<atom:link href="http://web.snauka.ru/issues/tag/matrichnyie-preobrazovaniya/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>Drag and Drop в 3D: перетаскивание трехмерных геометрических фигур в веб-приложении</title>
		<link>https://web.snauka.ru/issues/2026/01/104100</link>
		<comments>https://web.snauka.ru/issues/2026/01/104100#comments</comments>
		<pubDate>Mon, 05 Jan 2026 05:49:59 +0000</pubDate>
		<dc:creator>Яковлев Юлиан Юрьевич</dc:creator>
				<category><![CDATA[05.00.00 ТЕХНИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[3D-графика]]></category>
		<category><![CDATA[drag-and-drop]]></category>
		<category><![CDATA[Ray Casting]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[WebGL]]></category>
		<category><![CDATA[интерактивность]]></category>
		<category><![CDATA[компьютерная графика]]></category>
		<category><![CDATA[матричные преобразования]]></category>
		<category><![CDATA[обработка событий]]></category>
		<category><![CDATA[преобразование координат]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/issues/2026/01/104100</guid>
		<description><![CDATA[Научный руководитель: Вильданов Алмаз Нафкатович Уфимский университет науки и технологий Нефтекамский филиал Кандидат физико-математических наук, доцент Интерактивность является ключевым аспектом современных графических приложений. Возможность напрямую манипулировать объектами в трехмерном пространстве значительно улучшает пользовательский опыт. В контексте учебных лабораторных работ по компьютерной графике добавление функциональности перетаскивания к базовым 3D-фигурам позволяет студентам глубже понять принципы работы с [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Научный руководитель: Вильданов Алмаз Нафкатович<br />
</em><em>Уфимский университет науки и технологий Нефтекамский филиал<br />
</em><em>Кандидат физико-математических наук, доцент</em></p>
<p style="text-align: justify;"><span>Интерактивность является ключевым аспектом современных графических приложений. Возможность напрямую манипулировать объектами в трехмерном пространстве значительно улучшает пользовательский опыт. В контексте учебных лабораторных работ по компьютерной графике добавление функциональности перетаскивания к базовым 3D-фигурам позволяет студентам глубже понять принципы работы с трехмерными сценами и взаимодействия пользователя с графическими системами.<br />
</span></p>
<p style="text-align: justify;"><span>Основная сложность реализации Drag and Drop в 3D заключается в преобразовании координат из двумерного пространства экрана в трехмерное пространство сцены. Для этого используется техника Ray Casting:<br />
</span></p>
<ol style="margin-left: 53pt;">
<li>
<div style="text-align: justify;"><span>Преобразование координат мыши в нормализованные координаты устройства (-1 до 1);<br />
</span></div>
</li>
<li>
<div style="text-align: justify;"><span>Создание луча из камеры через точку на экране;<br />
</span></div>
</li>
<li>
<div style="text-align: justify;"><span>Определение пересечения луча с объектами сцены:<br />
</span></div>
</li>
</ol>
<p style="text-align: justify;"><span>Ключевые матрицы для преобразований:<br />
</span></p>
<ul style="margin-left: 42pt;">
<li>
<div style="text-align: justify;"><span>Матрица проекции (projectionMatrix);<br />
</span></div>
</li>
<li>
<div style="text-align: justify;"><span>Матрица вида (viewMatrix);<br />
</span></div>
</li>
<li>
<div style="text-align: justify;"><span>Мировая матрица объекта (modelMatrix).<br />
</span></div>
</li>
</ul>
<p style="text-align: justify;"><span>Система состоит из трех основных компонентов:<br />
</span></p>
<ol style="margin-left: 53pt;">
<li>
<div style="text-align: justify;"><span>Менеджер объектов - хранит информацию о всех фигурах в сцене;<br />
</span></div>
</li>
<li>
<div style="text-align: justify;"><span>Обработчик событий - управляет вводом пользователя;<br />
</span></div>
</li>
<li>
<div style="text-align: justify;"><span>Система выбора объектов - определяет, какой объект выбран.<br />
</span></div>
</li>
</ol>
<p style="text-align: justify;"><span>Создадим восемь различных 3D-геометрических объектов с помощью библиотеки Three.js и добавим их в сцену – сферу, призму, пирамиду, цилиндры и т.д. (рисунок 1):<br />
</span></p>
<p style="text-align: center;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011626_0546_DragandDrop1.png" alt="" /><span><br />
</span></p>
<p style="text-align: center;"><span>Рисунок 1. Демонстрация Drag and Drop в WebGL<br />
</span></p>
<p style="text-align: justify;"><span>Объявим массив dragObjects, который будет использоваться для хранения объектов, которые пользователь хочет сделать интерактивными:<br />
</span></p>
<p style="text-align: justify;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011626_0546_DragandDrop2.png" alt="" /><span><br />
</span></p>
<p style="text-align: justify;"><span>Все объекты добавляются в массив dragObjects для поддержки функционала перетаскивания мышью.<br />
</span></p>
<p style="text-align: justify;"><span>Ниже приведены фрагменты кода:<br />
</span></p>
<p style="text-align: justify;"><span> 1. Сфера<br />
</span></p>
<p style="text-align: justify;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011626_0546_DragandDrop3.png" alt="" /><span><br />
</span></p>
<p style="text-align: justify;"><span> 2. Цилиндр<br />
</span></p>
<p style="text-align: justify;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011626_0546_DragandDrop4.png" alt="" /><span><br />
</span></p>
<p style="text-align: justify;"><span> 3. Куб<br />
</span></p>
<p style="text-align: justify;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011626_0546_DragandDrop5.png" alt="" /><span><br />
</span></p>
<p style="text-align: justify;"><span> 4. Пирамида<br />
</span></p>
<p style="text-align: justify;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011626_0546_DragandDrop6.png" alt="" /><span><br />
</span></p>
<p style="text-align: justify;"><span> 5. Конус<br />
</span></p>
<p style="text-align: justify;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011626_0546_DragandDrop7.png" alt="" /><span><br />
</span></p>
<p style="text-align: justify;"><span> 6. Призма (треугольная)<br />
</span></p>
<p style="text-align: justify;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011626_0546_DragandDrop8.png" alt="" /><span><br />
</span></p>
<p style="text-align: justify;"><span> 7. Кубоид (прямоугольный параллелепипед)<br />
</span></p>
<p style="text-align: justify;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011626_0546_DragandDrop9.png" alt="" /><span><br />
</span></p>
<p style="text-align: justify;"><span> 8. 6-угольная призма:<br />
</span></p>
<p style="text-align: justify;"><img src="https://web.snauka.ru/wp-content/uploads/2026/01/011626_0546_DragandDrop10.png" alt="" /><span><br />
</span></p>
<p style="text-align: justify;"><span>Теперь фигуры можно перетаскивать мышью (рисунок 1).<br />
</span></p>
<p style="text-align: center;"><span><strong>Заключение<br />
</strong></span></p>
<p style="text-align: justify;"><span>Реализация механизма Drag and Drop для 3D-фигур значительно расширяет возможности интерактивного взаимодействия с графическими сценами. Представленный подход позволяет интегрировать функциональность перетаскивания в существующие лабораторные работы по компьютерной графике без значительной переработки кода. Разработанное решение демонстрирует практическое применение математических основ компьютерной графики и может служить базой для более сложных интерактивных систем.</span></p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2026/01/104100/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
