Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.71
Axiles1305
0 / 0 / 1
Регистрация: 21.07.2011
Сообщений: 20
#1

Вывод геометрических фигур - C++

08.09.2011, 17:27. Просмотров 5585. Ответов 4
Метки нет (Все метки)

Привет всем! Такая проблема: С треугольниками разобрался- могу выводить с помощю цыклов разные и в разных ракурсах. Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
void main()
{
setlocale(LC_ALL, "RUS");
int a;
cout<<"Введите а:";
cin>>a;
for (int y=0;y<a;y++){
for(int x=0;x<a;x++)
if (x<=y)
cout<<"*";
else
cout<<" ";
cout<<"\n";
}}
а вот таким же способом нарисовать трапецию (сторона 3*a), ромб (2*а-1) и паралолограмм ну ника не получается. Помогите плиз, в чем тут фишка вообще с єтими фигурами.Как можна любую нарисовать с помощю цыкла?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2011, 17:27
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывод геометрических фигур (C++):

Вывод на экран геометрических фигур
Дали курсач. Задание: разработать программу, обеспечивающую изображение на...

Иерархия геометрических фигур
Проблема с классами, никак не могу из за этого написать последнюю прогу......

HELP!!! движение геометрических фигур
Нужна помощь в написании программы движения круга на экране хотя бы чтоб...

Масштабирование геометрических фигур
Было задание: Построить систему классов для описания плоских геометрических...

Выбор геометрических фигур из перечисления
Что необходимо написать для того что бы ввести потом 1,2,3 или 4 и выбрать...

Графика - построение геометрических фигур
Я что-то вообще не могу понять, как выполнять это задание. Считать данные не...

4
silent_1991
Эксперт С++
5007 / 3067 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
09.09.2011, 14:34 #2
Параллелограмм:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
int main()
{
    size_t side1, side2;
 
    std::cout << "Enter first side: ";
    std::cin >> side1;
    std::cout << "Enter second side: ";
    std::cin >> side2;
 
    for (size_t i = 0; i < side1; ++i)
    {
        for (size_t j = 0; j < side1 - i - 1; ++j)
            std::cout << ' ';
 
        for (size_t j = 0; j < side2; ++j)
            std::cout << '*';
 
        std::cout << std::endl;
    }
 
    return 0;
}
Добавлено через 17 минут
Трапеция:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int main()
{
    size_t top;
 
    std::cout << "Enter top: ";
    std::cin >> top;
 
    for (size_t i = 0; i < top + 1; ++i)
    {
        for (size_t j = 0; j < top - i; ++j)
            std::cout << ' ';
 
        for (size_t j = 0; j < 2 * i + top; ++j)
            std::cout << '*';
 
        std::cout << std::endl;
    }
 
    return 0;
}
Добавлено через 4 часа 30 минут
Ну и ромб:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
 
int main()
{
    int a;
 
    std::cout << "Enter a: ";
    std::cin >> a;
 
    for (int i = 0; i < 2 * a - 1; ++i)
    {
        for (int j = 0; j < abs(a - i - 1); ++j)
            std::cout << ' ';
 
        for (int j = 0; j < ((i < a) ? (2 * i + 1) : (4 * a - 2 * i - 3)); ++j)
            std::cout << '*';
 
        std::cout << std::endl;
    }
 
    return 0;
}
1
_Dan_
2 / 2 / 0
Регистрация: 09.09.2011
Сообщений: 12
09.09.2011, 15:23 #3
Цитата Сообщение от Axiles1305 Посмотреть сообщение
Как можна любую нарисовать с помощю цыкла?
Привет, почему бы не воспользоваться OpenGL, могу пример скинуть и треугольника и трапеции.
Главное зацепиться а там и октаэдр сами нарисуете...
0
Axiles1305
0 / 0 / 1
Регистрация: 21.07.2011
Сообщений: 20
09.09.2011, 15:27  [ТС] #4
Цитата Сообщение от _Dan_ Посмотреть сообщение
Привет, почему бы не воспользоваться OpenGL, могу пример скинуть и треугольника и трапеции.
Главное зацепиться а там и октаэдр сами нарисуете...
С удовольствием посмотрел бы, но я в этом деле новичок, да и препод сказал вывести фигуры с помощью цикла
0
_Dan_
2 / 2 / 0
Регистрация: 09.09.2011
Сообщений: 12
10.09.2011, 11:54 #5
Ну, теперь понятно, преподавателя больше интересует не вывод геометрии, а умение работать с циклами. Код на OpenGL именно для геометрии все-таки привожу, раз заинтересовало. На 3 семестре обучения может и поймете, удачи!


C++
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
#include "stdafx.h"
#include <GL/gl.h>              // Заголовочный файл для OpenGL32 библиотеки
#include <GL/glu.h>             // Заголовочный файл для GLu32 библиотеки
#include <GL/glut.h>            // Заголовочный файл для GLUT библиотеки
#include <GL/glaux.h>           // Заголовочный файл для GLaux библиотеки
 
#pragma comment (lib,"opengl32.lib")
#pragma comment (lib,"glut32.lib")
#pragma comment (lib,"glu32.lib")
#pragma comment (lib,"glaux.lib")
 
 
void Redraw(void);
void DrawFigures(void);
void Display(void);
void Draw_Trangle(double a,double x, double y, double z)  ;
 
//---------------------------------------------------------------------------------------
int main(int argc, char **argv)
{
glutInit(&argc, argv);        //Инициализация функций библиотеки GLUT
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); 
glutInitWindowSize(320,240); 
glutCreateWindow("DEMO OpenGL");
glutDisplayFunc(Display);     // Регистрация функции построения изображения
glutIdleFunc(Redraw);         // Регистрация функции обновления изображения
glEnable(GL_SMOOTH);
glEnable(GL_DEPTH_TEST);
glEnable(GL_NORMALIZE);
 
glClearColor(0.3f, 0.2f, 0.2f, 1.0f);
GLfloat LightAmbient[] = {1.0, 1.0, 1.0, 1.0};        // Глоб фоновый свет
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, LightAmbient);
 
glutMainLoop(); //Цикл обработки событий
return 0;
} 
//=======================================================================================
 
 
//---------------------------------------------------------------------------------------
void Display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Очищаем экран
DrawFigures();                                      // Построение объектов
glutSwapBuffers();                                  // Перестановка буферов кадра
}
//=======================================================================================
 
//--- Функция перерисовки ---------------------------------------------------------------
void Redraw(void)
{
 glutPostRedisplay(); // Сигнал для вызова процедуры создания изображения (для обновления)
}
//=======================================================================================
 
//------------------------------------------------------------
 void DrawFigures(void)
 {
      glMatrixMode(GL_PROJECTION);
      glLoadIdentity();
      gluPerspective(85, 640.0/480.0, 1, 100.0);
      glMatrixMode(GL_MODELVIEW);
      glLoadIdentity();
      gluLookAt(0, 0, 0, 0, 0, 4, 0,1,0);
      Draw_Trangle(8, 0, -4, 5);
 }
//============================================================
 
 
//-------------------------------------------------------------------------
void Draw_Trangle(double a,double x, double y, double z)  
{
    glBegin(GL_QUADS);    
    glColor3d(0.0f, 0.0f, 1.0f);
    glVertex3f(-a/2, y, z);
    glColor3d(0.0f, 1.0f, 0.0f);
    glVertex3f( a/2, y, z);
    glColor3d(1.0f, 0.0f, 0.0f);
    glVertex3f(x, a/2, z);
    glVertex3f(x, a/2, z);
    glEnd();
}
//==========================================================================
1
Изображения
 
10.09.2011, 11:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2011, 11:54
Привет! Вот еще темы с решениями:

Иерархия геометрических фигур в ООП
Здравствуйте уважаемые формучани, нужна ваша помощь ибо я уже не знаю что...

Вычисление площадей геометрических фигур
Программа на языке C++. Вводятся длины сторон прямоугольника, найти его...

Графическое изображение геометрических фигур на координатной плоскости
заданием была озобразить графически лабу, которую уже делали до этого без граф...

Расчет веса геометрических фигур из различных материалов
Условия задания таковы: &quot; Расчет веса геометрических фигур из различных...


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

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

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