Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 28

Закрасить верхнюю грань куба в случайный цвет, а в правой грани провести диагонали

03.01.2010, 12:49. Показов 5430. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с прогой
Нарисовать куб. Передний левый угол куба имеет координаты (X, Y), длина ребра A. Закрасить верхнюю грань в случайный цвет, а в правой грани провести диагонали.
Пытался через Bar3D только куб нарисвать, получалась какаято муть. Хелп знатоки)))
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.01.2010, 12:49
Ответы с готовыми решениями:

Закрасить верхнюю грань куба, а в правой грани провести диагонали
Нарисовать куб. Передняя левая нижняя вершина куба имеет координаты (X, Y), длина ребра A. закрасить верхнюю грань, а в правой грани...

Как закрасить верхнюю и нижнюю грани куба, и выставить цвет фона?
Вот код рисунка правильного шестигранника (куба): Image1->Canvas->Font->Style<<fsBold; Image1->Canvas->Rectangle(0,0,100,100); ...

Получить изображение куба и закрасить его верхнюю грань некоторым цветом
Написать программу получения изображения куба и закраски его верхней грани некоторым цветом после нажатия на клавишу Enter.

12
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.01.2010, 12:53
Нарисуй закрашенный квадрат, 2 полигона в виде ромбов, или просто по 4 линии, затем
setfillstyle+floodfill.
0
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 28
03.01.2010, 12:56  [ТС]
Puporev,мда Я-чайник. как реализовать в паскале )))
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.01.2010, 15:21
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Например так, координаты и размеры можешь менять.
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
uses graph;
var x,y,a,c:integer;
begin
randomize;
x:=0;
initgraph(x,y,'');
x:=100;
y:=200;
a:=100;
{передняя грань}
rectangle(x,y,x+a,y+a);
c:=random(14)+1;
{верхняя грань}
setcolor(c);
line(x,y,x+a,y);
line(x,y,x+a div 2,y-a div 2);
line(x+a div 2,y-a div 2,x+a div 2+a,y-a div 2);
line(x+a div 2+a,y-a div 2,x+a,y);
setfillstyle(1,c);
floodfill(x+50,y-5,c);
{боковая грань}
setcolor(15);
line(x+a div 2+a,y-a div 2,x+a div 2+a,y-a div 2+a);
line(x+a div 2+a,y-a div 2+a,x+a,y+a);
{диагонали}
line(x+a,y+a,x+a div 2+a,y-a div 2);
line(x+a,y,x+a div 2+a,y+a div 2);
readln
end.
0
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 28
03.01.2010, 17:08  [ТС]
Puporev, а как дорисовать еще 2 боковые грани и основание ?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.01.2010, 17:31
Так их же не видно. Если нужно, проведите еще 2 пунктирных линии.
0
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 28
03.01.2010, 20:15  [ТС]
Puporev, переделал я прогу, все сделал через линии, но не могу закрасить верхнюю основу. Можете посмотреть?
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
uses graph;
var  Diver, Mode, x,y,a,c :integer;
begin      
randomize;
 
 Diver := Detect;
InitGraph(Diver, Mode, 'D:\TP7\BGI');
 
x:=random (500);
y:=random(360);
a:=random(150);
c:=random(14)+1;
{основание 1}
line(x,y,x+a,y);
line(x+a,y, x+a+a div 2, y-a div 2);
SetLineStyle(2,1,1);
line(x,y,x+a div 2, y-a div 2);
line (x+a div 2, y-a div 2, x+a+a div 2, y-a div 2 );
 
{Верхнее основание}
setcolor(c);
SetLineStyle(0,1,1);
line(x,y-a, x+a, y-a);
line(x+a,y-a, x+a+a div 2, y-a-a div 2);
line(x,y-a,x+a div 2, y-a-a div 2);
line (x+a div 2, y-a-a div 2, x+a+a div 2, y-a-a div 2 );
setfillstyle(1,c);
floodfill(x+2,y-3,c);
{передняя грань}
 
line(x,y,x, y-a);
line(x+a,y, x+a, y-a);
 
{боковая грань }
SetLineStyle(2,1,1);
line (x+ a div 2, y-a div 2, x+ a div 2, y -a div 2 -a);
 
{боковая грань 2 }
SetLineStyle(0,1,1);
line (x+a+ a div 2, y-a div 2, x+a+a div 2, y-a div 2 -a);
{диагонали}
line(x+a,y-a,x+a div 2+a,y-a div 2);
line(x+a,y,x+a div 2+a, y- a-a div 2);
 
readln;
CloseGraph;
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.01.2010, 20:20
Yarikdik, А я просил переделывать? Я предлагал добавить 2 линии.
floodfill(x+2,y-3,c) Вы уверены что точка начала закрашивания попадает на верхнюю грань? Я нет.
0
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 28
03.01.2010, 20:36  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Yarikdik, А я просил переделывать? Я предлагал добавить 2 линии.
floodfill(x+2,y-3,c) Вы уверены что точка начала закрашивания попадает на верхнюю грань? Я нет.
Просто я там в ашем варианте напонял ростановки координат. Суть проблемы только найти точку.
А где предлагаете вы она будет, для закраски верхней грани??
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.01.2010, 20:39
У меня точка внутри была, вот и посмотрите. А еще лучше нарисуйте все в координатах на бумаге и разберитесь.
0
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 28
03.01.2010, 20:48  [ТС]
Ураа заработало точку чуть перепутал
Pascal
1
floodfill(x+2,y-a-1,c);
и все работает
Спасибо за помощь
0
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216
05.06.2012, 16:19
Bar3D(X1, Y1, X2, Y2:Integer; Depth:Word; Top:Boolean);
Рисует на экране параллелепипед с залитой передней гранью. Глубина фигуры - Depth. Если Top равно TopOn , то параллелепипед рисуется с верхней гранью, если TopOff, то без верхней грани. Стиль и цвет заливки передней грани задаются процедурой SetFillStyle.

Вопрос: Как закрасить грани в нужный цвет у Bar3D без дополнительного шаманства?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.06.2012, 16:58
Цитата Сообщение от Shman Посмотреть сообщение
без дополнительного шаманства?
Никак.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2012, 16:58
Помогаю со студенческими работами здесь

Закрасить грани куба
Здравствуйте. Есть код, рисующий куб using System.Drawing; using System.Windows.Forms; namespace IsometricCube { public...

Закрасить грани куба разными цветами
Здравствуйте, интересуют несколько вопросов/нюансов связанных с OpenGL в 3D: К примеру, есть некий самый обычный куб и необходимо...

Вывести на экран длину стороны, длину диагонали и периметр грани, а также длину диагонали куба
С клавиатуры вводятся число a и число b от 1 до 4. Если b=1, то a - длина стороны куба, если b=2, то длина диагонали грани, если b=3, то...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru