|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Построение геом. фигуры |
|
|
C/C++ - [решено] Построение геом. фигуры
|
|
Пользователь Сообщения: 58 |
Нужно построить данную фигуру (картинка).
Желательно несколькими способами. Заранее благодарен. |
|
|
Отправлено: 22:04, 20-09-2014 |
|
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать 1 способом сделал.
Подскажите еще.
|
|
Отправлено: 22:48, 20-09-2014 | #2 |
|
Ветеран Сообщения: 1405
|
Профиль | Отправить PM | Цитировать #include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#include <string.h>
#include <windows.h>
#pragma comment(lib,"user32.lib")
#pragma comment(lib, "kernel32.lib")
#pragma comment(lib,"gdi32.lib")
HRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
struct c_program
{
WNDCLASSEX wc;
MSG msg;
HWND hwnd;
HDC hdc;
void draw_gdi(){ hdc = GetDC(hwnd);
MoveToEx(hdc, 40, 40, RGB(255, 0, 0)); LineTo(hdc, 140, 40);
MoveToEx(hdc, 140, 40, RGB(255, 0, 0)); LineTo(hdc, 140, 80);
MoveToEx(hdc, 40, 40, RGB(255, 0, 0)); LineTo(hdc, 40, 80);
MoveToEx(hdc, 40, 80,RGB(255, 0, 0)); LineTo(hdc, 140, 80);
MoveToEx(hdc, 40, 80, RGB(255, 0,0)); LineTo(hdc, 140, 40);
c_program(){ set_locale(LC_ALL,"Russian"); };
~c_program(){}
int main(){ HINSTANCE hInstance=GetModuleHandle(0); LPSTR CommandLine = GetCommandLine(); return WinMain(hInstance, NULL, CommandLine, SW_SHOWDEFAULT);};
void create_wndclass(HINSTANCE hInst){ wc.cbSize=sizeof(WNDCLASSEX); wc.style=CS_HREDRAW|CS_VREDRAW; wc.lpfnWndProc=(WNDPROC)WndProc; wc.cbClsExtra=NULL; wc.cbWndExtra=NULL;wc.hInstance=hInst;wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); wc.lpszMenuName="MainMenu"; wc.lpszClassName="SimpleWinClass"; wc.hIcon=LoadIcon(NULL, IDI_APPLICATION); wc.hIconSm=LoadIcon(NULL, IDI_APPLICATION); wc.hCursor=LoadCursor(NULL, IDC_ARROW);RegisterClassEx(&wc);}
void create_windows(HINSTANCE hInst){ hwnd=CreateWindowEx(NULL, "SimpleWinClass","host",WS_OVERLAPPEDWINDOW, 100,100,1000,1000,NULL,(HMENU) NULL,hInst, NULL); ShowWindow(hwnd, SW_SHOWNORMAL)! UpdateWindow(hwnd);}
int message_cycle(){while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg); DispatchMessage(&msg);} return msg.wParam;}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR CmdLine, int CmdShow){create_wndclass(hInst); create_windows(hInst); return message_cycle();}
};
c_program z;
int main(int argc, char* argv[]){ return z.main();}
LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_DESTROY: PostQuitMessage(NULL); return 0;
case WM_PAINT: z.draw_gdi(); return 0;
default: return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return DefWindowProc(hwnd,uMsg, wParam,lParam);
}
|
|
------- Отправлено: 16:19, 21-09-2014 | #3 |
|
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать #include <stdio.h>
int main() {
int x1=0, x2=200, y1=0, y2=100;
printf("<svg width=\"%d\" height=\"%d\">\n"
"<polyline points=\"%d,%d %d,%d %d,%d %d,%d %d,%d %d,%d\" style=\"fill:none;stroke:black;stroke-width:3\" />\n"
"</svg>\n", x2, y2, x2,y1, x1,y2, x2,y2, x2,y1, x1,y1, x1,y2);
}
|
|
Отправлено: 17:35, 23-09-2014 | #4 |
|
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int const x2=78, y2=30, pitch=x2+1, area_size=pitch*y2;
int x=1, normal=(x2-y2)/2;
char *img = malloc(area_size), *last=img+area_size-pitch, *row=last;
memset(img, ' ', area_size);
for(;;) {
if (0<normal) {
normal-=y2;
img[x]=last[x]=row[x]='x';
if (x<x2) { ++x; }
}
else {
normal+=x2;
row[0]=row[pitch-2]='x';
row[pitch-1]='\n';
if ((row-=pitch)<img) break;
}
}
fwrite(img, y2, pitch, stdout);
free(img);
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int const x2=78, y2=30, pitch=x2+1, area_size=pitch*y2;
char *img = malloc(area_size);
unsigned const dx=x2-2, dy=y2-2;
int const width = (x2+y2)/2;
unsigned x, y;
for(y=0; y<y2; ++y) {
img[(y+1)*pitch-1] = '\n';
for(x=0; x<x2; ++x) {
img[y*pitch+x] =
x - 1 < dx && y - 1 < dy &&
width < (x-dx)*dy + y*dx ? ' ' : 'x';
}
}
fwrite(img, y2, pitch, stdout);
free(img);
}
|
|
|
Отправлено: 17:32, 24-09-2014 | #5 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| 2010 - Есть ли в ms office 2010 доп. фигуры | vanoman | Microsoft Office (Word, Excel, Outlook и т.д.) | 1 | 20-10-2012 03:05 | |
| 2007 - [решено] Поворот фигуры в MS Visio 2007 | PierreVanStulov | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 30-06-2011 17:07 | |
| 2007 - Не сохраняются фигуры в Visio | zi0n | Microsoft Office (Word, Excel, Outlook и т.д.) | 0 | 05-07-2010 12:39 | |
| [решено] подсчитать площадь произвольной фигуры | Surround | Хочу все знать | 8 | 13-11-2008 10:34 | |
| Шахматные фигуры 1024х768 и выше. Помогите найти, пожалуйста... | FRZ | Хочу все знать | 4 | 20-09-2006 14:44 | |
|