当前位置:首页 » 编程语言 » c语言绘制矩形
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言绘制矩形

发布时间: 2022-05-04 16:06:16

‘壹’ 用c语言编写程序 在屏幕上画一个矩形

#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>

void polygon(int n, int x, int y, int r, int color, float arg, int fillstyle);

int main()
{
int GraphDriver;
int GraphMode;
float arg = 45, argd;
int a;
int direction;
int r;
int n = 4;
FILE *fp;
char szfilename[255] = {"c:\\cube.txt"};
GraphDriver = DETECT;
printf("Input size of cube: ");
scanf("%d", &r);
printf("Input direction(0-1): ");
scanf("%d", &direction);
if (direction == 0)
{
argd = 45;
}
else
{
argd = -45;
}

initgraph(&GraphDriver, &GraphMode, "");
polygon(n, 300, 200, r, 12, arg, 0);
while(1)
{
while(kbhit())
{
a = getch();
if (a == 27)
{
if ((fp = fopen(szfilename, "wt")) != NULL)
{
fprintf(fp, "%d\n%d\n", r, direction);
fclose(fp);
}
closegraph();
return 0;
}
if (a == 0)
{
getch();
polygon(n, 300, 200, r, 0, arg, 0);
arg += argd;
polygon(n, 300, 200, r, 12, arg, 0);
}
else
{
polygon(n, 300, 200, r, 0, arg, 0);
arg += argd;
polygon(n, 300, 200, r, 12, arg, 0);
}
}
}
}

void polygon(int n, int x, int y, int r, int color, float arg, int fillstyle)
{
double pi;
int i;
float x1[10], y1[10];
setcolor(color);
pi = atan(1) * 4;
arg = atan(1) / 45 * arg;
x1[1] = x + r * cos(2 * pi / n + arg);
y1[1] = y + r * sin(2 * pi / n + arg);
moveto(x1[1], y1[1]);
for (i = 2; i <= n; i++)
{
x1[i] = x + r * cos(2 * pi * i / n + arg);
y1[i] = y + r * sin(2 * pi * i / n + arg);
lineto(x1[i], y1[i]);
}
lineto(x1[1], y1[1]);
if (fillstyle != 0)
{
setfillstyle(SOLID_FILL, color);
floodfill(x, y, color);
}
}

‘贰’ 用c语言编矩形

#include<stdio.h>

intmain(){
intwidth,height,fill;
charchr;
scanf("%d%d%c%d",&height,&width,&chr,&fill);
if(height>10||height<3){
perror("Heightmustbetween3and10!");
return1;
}
if(width>10||width<5){
perror("Widthmustbetween5and10!");
return1;
}
for(inti=0;i<height;i++){
if(i==0||i==height-1||fill){
for(intj=0;j<width;j++){
printf("%c",chr);
}
}else{
printf("%c",chr);
for(intj=0;j<width-2;j++){
printf("");
}
printf("%c",chr);
}
printf(" ");
}
return0;

‘叁’ C语言:星号绘制的矩形程序问题

改成这样就行了

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int x = 0; /*长度*/
int y = 0; /*宽度*/
int i = 1;
int j = 1;
on:
printf("x=");
scanf("%d", &x);
printf("y=");
scanf("%d", &y);
if(x < 2 || y < 0)
{
printf("Please enter a right number");
goto on;
}
for( ; i <= x ; i++)
printf("*"); /*先输出顶端的一条边*/
x -= 2; /*用来输出空格*/
for( ; j <= y - 2 ; j++) /*宽度*/
{
printf("\n*"); /*先输出一个星号,后面输出空格*/
for( i = 1; i <= x ; i++)
printf(" "); /*这个空格木有输出,问题出在哪里?*/
printf("*"); /*输出完空格后要输出一个星号*/
}
printf("\n");
x += 2;
for( i = 1; i <= x ; i++)
printf("*"); /*先输出顶端的一条边*/
system("pause");
return 0;
}

‘肆’ 用c语言画矩形

每行起始和结束字符均是你的第3个参数
矩形第1行和最后一行中间是第3个参数,其他行根据第4个参数决定是空格或者第3个参数
程序可以这样写:
...
for ( m=0;m<a;m++ )
{
printf("%c",c); //第1列
if ( m==0 || m==a-1 ) //第1行和最后一行
for ( n=1;n<b-1;n++ ) printf("%c",c);
else //中间的行
for ( n=1;n<b-1;n++ ) if ( d==0 ) printf(" "); else printf("%c",c); //空心或否
printf("%c\n",c); //最后1列
}
或者可以写:
for ( m=0;m<a;m++ )
{
printf("%c",c); //第1列
if ( m==0 || m==a-1 || d!=0) for ( n=1;n<b-1;n++ ) printf("%c",c);
else for ( n=1;n<b-1;n++ ) printf(" ");
printf("%c\n",c); //最后1列
}

‘伍’ 用C语言画矩形

/* 旋转的立体椭球 */
#include <graphics.h>
#include <math.h>
#include <conio.h>
#define PI 3.14159
#define T PI/180
#define NN 36
#define DT PI/NN
#define DIST 0.8
#define R 190
static int n=1;
void trans(t,s)
float t[3];
float s[3][3];
{
s[0][0]=cos(t[1])*cos(t[2]); s[0][1]=cos(t[1])*sin(t[2]);
s[0][2]=-sin(t[1]);
s[1][0]=sin(t[0])*sin(t[1])*cos(t[2])-cos(t[0])*sin(t[2]);
s[1][1]=sin(t[0])*sin(t[1])*sin(t[2])+cos(t[0])*cos(t[2]);
s[1][2]=sin(t[0])*cos(t[1]);
s[2][0]=cos(t[0])*sin(t[1])*cos(t[2])+sin(t[0])*sin(t[2]);
s[2][1]=cos(t[0])*sin(t[0])*sin(t[2])-sin(t[0])*cos(t[2]);
s[2][2]=cos(t[0])*cos(t[1]);
}
void draw(m,da,db)
float m[3][3],da,db;
{
float f[3],f0 , x0,y0,x1,y1,x2,y2;
f[0]=R*sin(da)*cos(db); f[1]=R*sin(da)*sin(db);
f[2]=R*cos(da);
f0=f[0]*m[0][2]+f[1]*m[1][2]+f[2]*m[2][2];
if(f0<=0) n=1;
else
{
x0=300.0;y0=165.0;
x2=(m[0][0]*f[0]+m[1][0]*f[1]+m[2][0]*f[2])+x0;
y2=(m[0][1]*f[0]+m[1][1]*f[1]+m[2][1]*f[2])*DIST+y0;
if(n==1) {n=2;x1=x2;y1=y2;}
else
{
line(x1,y1,x2,y2);
x1=x2;y1=y2;
}
}
}
main()
{
float d[3],r[3][3],ta,tb;
char k;
int gdriver=VGA,gmode=VGAMED, i,p=1;
initgraph(&gdriver,&gmode,"c:\\tc");
setbkcolor(BLACK);setcolor(GREEN);
d[1]=30*T; d[2]=10*T;
do{
for(i=0;i<=361;i+=1)
{
k=kbhit();
if(k!=0)break;
setactivepage(p);
d[0]=i*T;
cleardevice();
trans(d,r);
for(tb=0.0;tb<PI;tb+=DT)
{
n=1;
for(ta=0.0;ta<2.1*PI;ta+=DT) draw(r,ta,tb);}
for(ta=0.0;ta<PI;ta+=DT)
{
n=1;
for(tb=0.0;tb<2.1*PI;tb+=DT) draw(r,ta,tb);
}
setvisualpage(p);delay(150);p=1-p;
}
}

while(k==0);
getch();closegraph();
}
这是旋转椭球的

‘陆’ C语言怎么画矩形

用lineto函数画矩形

#include<graphics.h>
main()
{int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"c:\\tc");
cleardevice();
moveto(160,120);
lineto(480,120);
lineto(160,360);
lineto(160120);
getch();
closegraph();
}
图形和图像函数包含在graphics.h里面
rectangle() 画矩形函数
功能: 函数rectangle() 用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。
用法: 此函数调用方式为void rectangle(int left,int top,int right,int bottom);
说明: 参数left,top是左上角点坐标,right,bottom是右下角点坐标。如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真(1),那么调用该函数后,只有在图形视口内的矩形部分才被画出。
这个函数对应的头文件为graphics.h
返回值: 无
例: 下面的程序画一些矩形实例:
#i nclude<graphics.h>
void main()
{
int driver,mode;
driver=DETECT;
mode=0;
initgrpah(&driver,&mode,"");
rectangle(80,80,220,200);
rectangle(140,99,180,300);
rectangle(6,6,88,88);
rectangle(168,72,260,360);
getch();
restorecrtmode();
}

‘柒’ 怎样用c语言画一个矩形

每行起始和结束字符均是你的第3个参数 矩形第1行和最后一行中间是第3个参数,其他行根据第4个参数决定是空格或者第3个参数 程序可以这样写: ... for ( m=0;m

‘捌’ 如何利用c语言程序设计绘制一个形状(圆,椭圆,矩形都可以),用线条动态地填充其内部

你的c 编译器需带 绘图函数库 才行。
c++ API 程序 可以绘图。只要得到窗口句柄,就可在该窗画图。画直线,多边形,圆,椭圆,扇形 等 都是基本函数。
下面程序在桌面窗口画线:
#include <Afxwin.h>
#include <Windows.h>
#pragma comment (lib, "User32.lib")
int main(void){
HWND hWnd = ::GetDesktopWindow();
HDC hdc = ::GetDC(hWnd);
// HDC hdc = ::GetDC(NULL);
RECT rect;
::GetWindowRect(hWnd, &rect);
::MoveToEx(hdc, 0, 0, NULL);
::LineTo(hdc, rect.right, rect.bottom);
::MoveToEx(hdc, rect.right, 0, NULL);
::LineTo(hdc, 0, rect.bottom);
::ReleaseDC(hWnd, hdc);
system("PAUSE");
return 0;
}
===
用“刷子”画填充的封闭图形 (参数是 花纹,颜色)
HBRUSH Brush[5];
case WM_PAINT:
Brush[0] = CreateHatchBrush(HS_BDIAGONAL, RGB(0, 0, 255));
Brush[1] = CreateHatchBrush(HS_CROSS, RGB(200, 0, 0));
Brush[2] = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 128, 0));
Brush[3] = CreateHatchBrush(HS_FDIAGONAL, RGB(0, 128, 192));
Brush[4] = CreateHatchBrush(HS_DIAGCROSS, RGB(255, 128, 0));
----
编译器 MS VC++ 6.0.
API 程序罗嗦,这里就不列出来了。

‘玖’ 用C语言模拟画图行(直线、 椭圆形、 三角形、 矩形、 梯形)求写编程

#include <stdio.h>
#define PI 3.14159
float erea_round(float r)
{
//圆形面积
return r * r * PI;
}

float erea_tri(float d,float h)
{
//三角形 面积
return 0.5 * d * h;
}

float erea_rec(float a,float b)
{
//矩形面积
return a * b;
}
int main()
{
float r,a,b,d,h;
int choose;
while (1)
{
printf("请选择要计算的图像:\n");
printf("1、圆形\n");
printf("2、三角形\n");
printf("3、矩形\n");
printf("4、退出\n");
scanf("%d",&choose);
if (choose == 1)
{
printf("请输入圆的半径:\n");
scanf("%f",&r);
printf("该圆面积为:%.3f\n",erea_round(r));
}
else if (choose == 2)
{
printf("请输入三角形的底和高:\n");
scanf("%f%f",&d,&h);
printf("该三角形面积为:%.3f\n",erea_tri(d,h));
}
else if (choose == 3)
{
printf("请输入矩形的长和宽:\n");
scanf("%f%f",&a,&b);
printf("该矩形面积为:%.3f\n",erea_rec(a,b));
}
else return 0;
}
return 0;
}