Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 3

как закрасить ( или сделать Штрихпунктирными ) "невидимые линии" в 3-х мерном изображении

17.05.2011, 00:54. Показов 2168. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите пожалуйста, как закрасить ( или сделать Штрихпунктирными ) "невидимые линии" в 3-х мерном изображении ?

Вот код программы ...

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
program 3D;
uses crt,graph;
var
   error,color, driver,regim:integer;
    alfa,beta:real;
    Buffx,Buffy,Xo,Yo,x1,x2,y1,y2:integer;
    n,a,z:integer;
   Sx,Sy, Q,i,j:integer;
    ax,ay:array [0..40] of integer;
    r:array [1..2,1..40,1..2] of integer;
procedure drawing;
begin
         color:=white;
         setbkcolor(color);
         setcolor(8);
         line(0,240,640,240);
         line(320,0,320,480);
         line(80,480,560,0);
         moveto(r[1,n,1]+Xo,r[1,n,2]+Yo);
         setlinestyle(2,0,3);
          for i:=1 to 2 do begin
 
            if i=2 then moveto(r[2,n,1]+z+Xo,r[2,n,2]-z+Yo);
                                    for j:=1 to n do begin
 
         if i=1 then lineto(r[i,j,1]+Xo,r[i,j,2]+Yo);
 
 
         if i=2 then lineto(r[i,j,1]+z+Xo,r[i,j,2]-z+Yo);
         end;
         end;
         for i:=1 to n do begin
 
         x1:=Xo+r[1,i,1];
         y1:=Yo+r[1,i,2];
 
         x2:=Xo+z+r[2,i,1];
         y2:=Yo-z+r[2,i,2];
 
         line(x1,y1,x2,y2);
 
         end;
    
    
       outtextxy(300 ,20 ,'Y');
       outtextxy(600 ,220 ,'X');
       outtextxy(50 ,450 ,'Z');
end;
 
 
begin
 
     Q:=15;Sx:=3;Sy:=4;
     n:=4;a:=40; z:=n+65;
     alfa:=(360/n)*pi/150;
     beta:=-Q*pi/180;
     ax[1]:=0;ay[1]:=a;
     for i:=1 to n do
     begin
          ax[i+1]:=round(ax[i]*cos(alfa)-ay[i]*sin(alfa));
          ay[i+1]:=round(ax[i]*sin(alfa)+ay[i]*cos(alfa));
          end;
     for i:=1 to n do
     for j:=1 to 2 do begin
     r[j,i,1]:=ax[i];
     r[j,i,2]:=ay[i];
     end;
     Xo:=320;Yo:=240;
     driver:=detect;
     InitGraph(driver,regim,'');
     error:=GraphResult;
     if error<>grOK then
        WriteLn('Error:',GraphErrorMsg(Error))
     else
      begin
         drawing;
         readln;
                 for i:=1 to n do
                  begin
               ax[i]:=round(ax[i]*Sx);
               ay[i]:=round(ay[i]*Sy);
 
         end;
 
         for i:=1 to n do
         for j:=1 to 2 do begin
 
         r[j,i,1]:=ax[i];
         r[j,i,2]:=ay[i];
         end;
         InitGraph(driver,regim,'');
         drawing;
         readln;
   
         for i:=1 to n do
         begin
 
               Buffx:=round(cos(beta)*ax[i])-round(sin(beta)*ay[i]);
               Buffy:=round(sin(beta)*ax[i])+round(cos(beta)*ay[i]);
               ax[i]:=Buffx;ay[i]:=Buffy;
         end;
         for i:=1 to n do
         for j:=1 to 2 do begin
         r[j,i,1]:=ax[i];
         r[j,i,2]:=ay[i];
         end;
      InitGraph(driver,regim,'');
         drawing;
              repeat until keypressed;
      end;
end.
Добавлено через 30 минут
очень надо)))

Добавлено через 4 часа 33 минуты
Кто нибудь, пожалуйста, подскажите)

Добавлено через 2 часа 4 минуты
Хоть какие то предположения есть ???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.05.2011, 00:54
Ответы с готовыми решениями:

Как сделать так чтобы данные из dateTimePicker или textbox отрисовались на изображении в picturebox
Подскажите, если это возможно

Невидимые линии
Здравствуйте, не могу разобраться с алгоритмом Робертса, чтобы сделать невидимые линии у куба и пирамиды. Пыталась разобраться по...

Невидимые линии
Доброго времени суток. Итак, в проекте рисуется трехмерный объект (октаэдр) и задается возможность его масштабирования и вращения. Вопрос,...

5
 Аватар для Choob
6 / 6 / 0
Регистрация: 10.05.2011
Сообщений: 28
17.05.2011, 03:10
http://www.pascal.helpov.net/i... rogramming

почитай тут. Здесь есть про стиль линии. я к сожалению графику уже не очень помню)))

Добавлено через 3 минуты
если лень искать там,то вот что тебе надо


Стиль вычерчиваемых линий, контуров

Процедура SetLineStyle ( type, pattern, thick: word) устанавливает стиль вычерчиваемых линий. Здесь type, pattern, thick – соответственно тип, образец и толщина линии.

Тип линии может быть задан с помощью одной из следующих констант:
SolidLn=0 {сплошная линия}
DottedLn=1 {точечная линия}
CenterLn=2 {штрих-пунктирная линия}
DashedLn=3 {пунктирная линия}
UserBitLn=4 {узор определяет пользователь}
1
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 3
17.05.2011, 04:00  [ТС]
Спасибо, это понятно) Но как мне выделить именно отдельные линии ?)
Только три отдельных линии ( невидимых )
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.05.2011, 07:03
Reebok532, Choob, Reebok532, а с каких это пор паскаль стал понимать 3D?
0
 Аватар для Choob
6 / 6 / 0
Регистрация: 10.05.2011
Сообщений: 28
18.05.2011, 02:04
Цитата Сообщение от taras atavin Посмотреть сообщение
Reebok532, Choob, Reebok532, а с каких это пор паскаль стал понимать 3D?
Там же не чистое 3D, а псевдо. Ты же на листке куб можешь нарисовать с пунктирными линиями?
0
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 3
18.05.2011, 22:50  [ТС]
вот вот)) и как их закрасить то ?))) ну оченььь надо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2011, 22:50
Помогаю со студенческими работами здесь

Как найти вертикальные линии на изображении?
Как найти вертикальные линии на изображении и их координаты (например, координаты начальной и конечной точек линий)? Гуглил и курил...

Невидимые линии в 3D модели
unit Kubik; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls,...

Невидимые линии и контур
Доброго времени суток, имеется куб, как реализовать прорисовку его контура (ребер), для это необходимо рисовать линии вручную или имеется...

Убрать невидимые линии у фигуры
Здравствуйте, не могу додуматься насчёт того, как убрать из фигуры невидимые линии. Знаю, что можно это как-то смоделировать при помощи...

Как вставить между строками таблицы линии, как на изображении?
Как вставить между строками таблицы линии, как на изображении?Пример и мой вариант во вложении.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через 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-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru