Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
GRAFMC
2 / 2 / 2
Регистрация: 09.08.2011
Сообщений: 103
1

Как рисовать трехмерные фигуры на плоскости?

22.03.2014, 00:19. Просмотров 1286. Ответов 1
Метки нет (Все метки)

Здарвствуйте, столкнулся с такой проблемой: не могу корретктно нарисовать каую либо трехмерную фигуру. Суть программы: в программу вводится масштаб, угол на который повернут этот многоугольник, и вид с к-л стороны, после ввода этих значений рисуется этот многоугольник по заданным параметрам, программа уже вся написана, но не могу додуматся как отрисовать эту фигуру, как сделать, что бы она распознавала какая фигура введена? Заранее спасибо за к-л помощь!
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
uses GraphABC;
var
f:  text;
x,y,z,xp,zp:array [1..10] of real;
a,s :real;
i,j,cl,d :integer;
w,h:integer;
g:integer;
procedure kor;
begin
SetBrushColor(clBlack);
Line(Round(w/2),0,Round(w/2),Round(h/2));
Line(Round(w/2),Round(h/2),0,Round(h));
Line(Round(w/2),Round(h/2),Round(w),Round(h/2));
end;
begin
w:=1600;
h:=1000;
SetWindowSize(w,h);
kor;
assign(f,'2.txt');
 Reset(f);
  i:=1;
while not(eof(f)) do
 begin
  readln(f,x[i]); writeln(x[i]);
  readln(f,y[i]); writeln(y[i]);
  readln(f,z[i]); writeln(z[i]) ;
  i:=i+1;
  end;
close(f);
 
writeln ('введите масштаб d');
readln (d);
writeln ('введите угол отображения фигуры a');
readln (a);
a:=a/57.3;
writeln ('введите параметры перспективы cl');
readln (cl);
FOR i:= 1 TO 10 do
begin
xp[i] := ((x[i] * COS(a) - y[i] * SIN(a)) * d) / (cl - (x[i] * SIN(a) + y[i] * COS(a)));
zp[i] := (z[i] * d) / (cl - (x[i] * SIN(a) + y[i] * COS(a)));
writeln (xp[i], zp[i]);
end;
 
FOR j := 1 TO 9 do
LINE (Round(w/2)+round(xp[j]),Round(h/2)-Round( zp[j]),Round(w/2)+Round(xp[j + 1]),Round(h/2)-Round( zp[j + 1])) //тут нужны исправления/добавления.
  end.
Впринципе она корректно работает, но рисует только нижнюю и верхнюю грани(боковые ребра не рисуются)
P.S. программа берет координаты из файла 2.txt попробуйте создать рядом с программой текстовик и ввести такие координаты:
Код
0
0
-50
100
0
-50
100
100
-50
0
100
-50
2
2
-49
0
0
50
100
0
50
100
100
50
0
100
50
2
2
50
а в параметрах программы(когда запустите программу на выполнение):
введите масштаб d=(500)
введите угол отображения фигуры а=(45) а
введите пареметры перспективы cl=(300)
получится похоже на недокуб (без боковых граней, нужна ваша помощь!!) сам код отвечающий за отрисовку фигуры находится в конце программы.У меня линия ведется от одной точки к другой и если приглядется, то от нижней грани линия не правильно идет к верхней, в общем я в ступоре, выручайте. Ещё раз спасибо за помощь

Добавлено через 23 часа 20 минут
ну блин, что и помочь никто не может? ((
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 00:19
Ответы с готовыми решениями:

Как рисовать трехмерные объекты не в PictureBox?
Добрый день! Такой вопрос. Надо нарисовать трехмерную фигурку на форме, используя стандартные...

В какой программе можно рисовать трехмерные схемы?
Подскажите пожалуйста в какой программе нарисована эта схема?

Трехмерные фигуры
Написать алгоритм постороение трехмерной фигуры на заказ. skype: jenya.lemeshevskii

Как рисовать фигуры?
Не так давно начал работать на си. Помогите пожалуйста. с помощью графики нарисовать такие картинки:

Как рисовать фигуры
Нужно на C# нарисовать заданную фигуру... а я с рисованием вообще не дружу. Помогите пожалуйста.

1
GRAFMC
2 / 2 / 2
Регистрация: 09.08.2011
Сообщений: 103
23.03.2014, 21:17  [ТС] 2
ап) все ещё актуально
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2014, 21:17

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

Как рисовать несложные фигуры
например вот такую балку !! и спасибо за ранее!

Как рисовать символами различные фигуры
Здравствуйте такой вопрос: в общем в учебнике задания рисовать звёздочками (*) букву О, стрелочку,...

Как рисовать элементарные геометрические фигуры?
Всем привет!!! Вопрос конечно гулповатый, но все же. Нужно про помощи WinApi прорисовывать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.