Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 13.05.2009
Сообщений: 9

вектор в трехмерном пространстве

13.05.2009, 13:29. Показов 2939. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста..... Как (или хотя бы, с помощью какого компонента) можно нарисавать вектор, полученный в результате сложения двух векторов, введенных с клавиатуры(введены координаты двух векторов). Проблема ..... в двухмерном пространстве наверное PaintBox? Chart? ...... А в трехмерном как? С помощью чего? Помогите...... я совсем в этом "чайник"....
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.05.2009, 13:29
Ответы с готовыми решениями:

Имеются две точки в трехмерном пространстве.Написать функцию, определяющую расстоянием между ними.
Имеются две точки в трехмерном пространстве.Написать функцию, определяющую расстоянием между этими точками. Входные параметры функции:...

Вектор в трехмерном пространстве
Помогите, пожалуйста, с заданием. Я не знаю как это реализовать, новичок в С++. Если можно с комментариями и не сильно замудренно. ...

Перегрузка операций в классе "Вектор в трехмерном пространстве"
Создать класс, описывающий векторы в трехмерном пространстве. Описать методы: обычный и перегружен и конструктор, ввод и вывод данных. ...

5
Посланник моего господина
111 / 106 / 52
Регистрация: 02.05.2009
Сообщений: 181
13.05.2009, 21:02
Есть базовый инструмент для практически для всех графических операций — TCanvas (например, на TImage)
Тогда можно ввести некоторые процедуры, как например
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure Line3D(Canvas:TCanvas; X1,Y1,Z1,X2,Y2,Z2:real; offsetX,offsetY:integer);
const kx = 0.5; ky = 0.5;
begin
Canvas.MoveTo(offsetX+round(Scale*(X1-Z1*kx)),offsetY+round(Scale*(Z1*ky-Y1)));
Canvas.LineTo(offsetX+round(Scale*(X2-Z2*kx)),offsetY+round(Scale*(Z2*ky-Y2)));
end;
 
procedure DrawArrow3D(Canvas:TCanvas; X,Y,Z:real; offsetX,offsetY:integer; angle,length:real);
const kx = 0.5; ky = 0.5;
const ang_off = pi/16;
var xb,yb:integer;
begin
xb:=offsetX+round(Scale*(X-Z*kx));
yb:=offsetY+round(Scale*(Z*ky-Y));
Canvas.MoveTo(xb+round(length*cos(angle+ang_off)),yb+round(length*sin(angle+ang_off)));
Canvas.LineTo(xb,yb);
Canvas.LineTo(xb+round(length*cos(angle-ang_off)),yb+round(length*sin(angle-ang_off)));
end;
Создадим процедуру, выводящию два вектора и их сумму:
Delphi
1
2
3
4
5
6
7
procedure VectorSum(Canvas:TCanvas; X1,Y1,Z1,X2,Y2,Z2:real; offsetX,offsetY:integer);
begin
Line3D(Canvas,0,0,0,X1,Y1,Z1,offsetX,offsetY);
Line3D(Canvas,0,0,0,X2,Y2,Z2,offsetX,offsetY);
Line3D(Canvas,0,0,0,X1+X2,Y1+Y2,Z1+Z2,OffsetX,OffsetY);
{$Message HINT 'Complete with arrows'}
end;
И пример вызова:
Delphi
1
VectorSum(Image1.Canvas,X1,Y1,Z1,X2,Y2,Z2,Image1.Width div 2,Image1.Height div 2); {where X1,Y1,Z1,X2,Y2,Z2 might be some values}
Примечание: если вектора плоские, то их аппликата равна 0.
1
0 / 0 / 0
Регистрация: 13.05.2009
Сообщений: 9
14.05.2009, 01:39  [ТС]
Messenger of G., Большое спасибо.............но у меня теперь другой вопрос: Способом который ВЫ описали выше, я нарисую вектора.... А Как будет выглядеть пример вызова, если вектора это объекты? (класс - вектор(сосжержит три перенные X Y Z(координаты)), в котором описаны всевозможные операции над векторами)..........
0
Посланник моего господина
111 / 106 / 52
Регистрация: 02.05.2009
Сообщений: 181
14.05.2009, 18:18
Объединим то, что написал Jean-Esther в ООП на Delphi(с графческим представлением векторов-объектов(трехмерное пространство)) с предыдущими мыслями (см. вложения)
Сделано в стиле системных модулей
Из операций записан пример только для прибавления вектора.
Вложения
Тип файла: rar Example.rar (4.5 Кб, 86 просмотров)
1
0 / 0 / 0
Регистрация: 13.05.2009
Сообщений: 9
15.05.2009, 02:12  [ТС]
Messenger of G., Большое спасибо за помощь...........
0
 Аватар для mandarin
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 14
28.05.2009, 02:19
+1 моя практика спасена
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.05.2009, 02:19
Помогаю со студенческими работами здесь

Создать класс "Вектор в трехмерном пространстве"
Создать класс, используя сведения, представленные в таблице. Разработать программу, демонстрирующую работу с объектами этого класса...

Класс "Вектор в трехмерном пространстве"
Создать класс "Вектор в трехмерном пространстве" (трехмерная точка) со следующим интерфейсом: class Vector { public Vector(double a,...

Трехмерном пространстве
В множестве А1 в трехмерном пространстве найти пару точек с максимальным расстоянием между ними(использовать структуру)

Точка в трехмерном пространстве
Помогите написать программу. Нужно реализовать точку обьект в трехмерном пространстве.

График(и) в трехмерном пространстве
Картинка Исходя из такого интерфейса как на картинки. Какой готовый класс или библиотеку использовать ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru