Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 2 / 1
Регистрация: 15.01.2010
Сообщений: 98
1

Чертеж детали

02.05.2011, 18:54. Просмотров 1027. Ответов 1
Метки нет (Все метки)

Ниже будет предоставлен код(написаный на Visual Studio 2010 CLR) вот этой детали(1 рисунок). Я прощу помочь мне с небольшими проблемами.
Деталь полностью нарисована, осталось только:
1) Навести или сделать более толстыми линии самой детали. Стрелки ненадо делать.
2) Сделать штриховку.
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
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
#pragma once
 
namespace Picture {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для Form1
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    protected: 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(341, 331);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(75, 23);
            this->button1->TabIndex = 0;
            this->button1->Text = L"button1";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(592, 366);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
 
        }
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                Color ^col = gcnew Color();
                Pen ^pen = gcnew Pen (col->Black);
                Pen ^pen1 = gcnew Pen (col->Red);
                Pen ^pen2 = gcnew Pen (col->Blue);
                 
                 Graphics ^im = this->CreateGraphics();
                  
                 // Заливка белым цветом
                 im->Clear(col->White); 
                 im->DrawRectangle(pen,10,10,500,300);
 
        
                 
 
 
                 // Большой прямугольник  
                im->DrawLine(pen,80,40,410,40); 
                im->DrawLine(pen,80,40,80,180); 
                im->DrawLine(pen,80,180,410,180);
                im->DrawLine(pen,410,40,410,180); 
                //Диагонали большого прямоугольника
                im->DrawLine(pen,80,40,410,180);
                im->DrawLine(pen,410,40,80,180);
 
 
                // Меньший прямоугольник
                im->DrawLine(pen,410,40,470,40); 
                im->DrawLine(pen,470,40,470,110);
                im->DrawLine(pen,470,110,410,110);
                // Диагонали меньшего прямоугольника
                im->DrawLine(pen,410,40,470,110);
                im->DrawLine(pen,470,40,410,110);
 
 
                // Круг в середине
                im->DrawEllipse(pen1,215,80,60,60);
 
 
                // Круг на углу
                im->DrawEllipse(pen1,50,147,60,60); 
                
                
                //Стрелки размера большого Прямоугольника
                //Горизонтальная стрелка
                im->DrawLine(pen2,80,180,80,240);
                im->DrawLine(pen2,410,180,410,240);//Вертикальные большого 
 
прямоугольника
                im->DrawLine(pen2,80,220,410,220);//Горизонтальная большого 
 
прямоугольника
                im->DrawLine(pen2,80,220,85,215);//Левая стрелка(верхняя линия)
                im->DrawLine(pen2,80,220,85,225);//Левая стрелка(нижняя линия )
                im->DrawLine(pen2,410,220,405,215);//Правая стрелка(верхняя линия)
                im->DrawLine(pen2,410,220,405,225);//Правая стрелка(нижняя линия)
 
                //Вертикальная стрелка
                im->DrawLine(pen2,80,40,20,40);
                im->DrawLine(pen2,80,180,20,180);//Горизонтальная большого 
 
прямоугольника
                im->DrawLine(pen2,40,40,40,180);//Вертикальные большого 
 
прямоугольника
                im->DrawLine(pen2,40,40,35,45); //Верхняя стрелка(левая линия)
                im->DrawLine(pen2,40,40,45,45);//Верхняя стрелка(правая линия)
                im->DrawLine(pen2,40,180,35,175);//Нижняя стрелка(левая линия)
                im->DrawLine(pen2,40,180,45,175);//Нижняя стрелка(правая линия)
 
 
                //Стрелки малого прямоугольника
                //Горизонтальная стрелка
                im->DrawLine(pen2,470,180,470,240);//Вертикальная малого 
 
прямоугольника
                im->DrawLine(pen2,410,220,470,220);//Горизонтальная малого 
 
прямоугольника
                im->DrawLine(pen2,410,220,415,215); //Левая стрелка(верхняя линия)
                im->DrawLine(pen2,410,220,415,225);//Левая стрелкая(нижняя линия)
                im->DrawLine(pen2,470,220,465,225);//Правая стрелка(нижнияя линия)
                im->DrawLine(pen2,470,220,465,215);//Правая стрелка(верхняя линия)
                
 
                //Вертикальная стрелка
                im->DrawLine(pen2,410,110,360,110);//Горизотальная
                im->DrawLine(pen2,380,110,380,40);//Вертикальная
                im->DrawLine(pen2,380,110,375,105);//Нижняя стрелка(левая линия)
                im->DrawLine(pen2,380,110,385,105);//Нижняя стрелка(правая линия)
                im->DrawLine(pen2,380,40,385,45);//Верхняя стрелка(правая линия)
                im->DrawLine(pen2,380,40,375,45);//Верхняя стрелка(левая линия)
                
 
                //Круги
                //Центральный круг
                im->DrawLine(pen2,215,110,215,160);//Вертикальная
                im->DrawLine(pen2,275,110,275,160);//Вертикальная
                im->DrawLine(pen2,215,150,275,150);//Горизонтальная
                im->DrawLine(pen2,215,150,220,145);//Правая стрелка(верхняя линия)
                im->DrawLine(pen2,215,150,220,155);//Правая стрелка(нижняя линия)
                im->DrawLine(pen2,275,150,270,145);//Левая стрелка(верхняя линия)
                im->DrawLine(pen2,275,150,270,155);//Левая стрелка(нижняя линия)
 
                //Боковой круг
                im->DrawLine(pen2,80,180,120,140);//Стрелка от центра круга
                im->DrawLine(pen2,120,140,160,140);//Продолжение стрелки 
 
 
            
 
 
 
 
                
                
 
 
             }
    };
}
Код полностью расписан комментариями.
2 рисунок показывает что этот код выводит на форму по нажатию кнопки.
Так же жду советов по уменьшению кода, если таково возможно.
 Комментарий модератора 
Для C++/CLI существует отдельный раздел. Перенесено.
0
Миниатюры
Чертеж детали  
Изображения
 
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2011, 18:54
Ответы с готовыми решениями:

Создать чертёж детали
Помогите начертить

Выполнить чертеж детали
Вот собственно сами задачи, всё с 1-го параграфа, но никак не могу сделать, ни на уроке, ни дома не...

Выполнить чертеж детали
помогите выполнить чертеж, а то я не знаю как

Выполнить чертеж детали
Вот собственно сами задачи, всё с 1-го параграфа, но никак не могу сделать, ни на уроке, ни дома не...

1
Делаю внезапно и красиво
Эксперт С++
1309 / 1224 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
02.05.2011, 19:55 2
По коду ничего говорить не буду, т.к. это не .NET-раздел.

Цитата Сообщение от brenor01 Посмотреть сообщение
Так же жду советов по уменьшению кода, если таково возможно.
Координаты линий можно записать в массив и рисовать линии в цикле.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2011, 19:55

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

Чертеж детали в автокад 2005
Буду благодарна если кто скинет образец или хоть-чем то поможет .

Правильно ли создан чертёж данной детали?
Добрый вечер. Хотелось бы проконсультироваться, насколько правильно сделан чертёж детали,...

По нескольким аксонометриям получить чертеж детали
Можно ли это автоматизировать и как?

Выполнить чертёж детали и произвести расчёт её площади
Задание: Составить программу которая выполняет чертёж детали и производит расчёт её площади....


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

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

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