【C++】중추절 동안 가족을 위해 별이 빛나는 하늘을 그리는 방법을 알려줍니다.

머리말

중추절이 다가오고 모두가 가족을 놀라게하고 싶어합니다! 오늘은 C++과 Easyx로 별이 빛나는 하늘을 그리는 방법을 알려드리겠습니다.

(효과 맵:)


1. Easyx 준비

먼저 Easyx 공식 웹 사이트 로 이동 하여 설치 프로그램을 다운로드해야 합니다.

다운로드가 완료되면 프로그램을 열고 "다음"을 클릭하십시오.

그런 다음 편집기를 선택하고 "설치"를 클릭하십시오.


 2. 기능 소개

오늘 사용할 몇 가지 기능을 간단히 소개합니다.

1. 솔리드서클

이 기능은 테두리 없이 채워진 원을 그리는 데 사용됩니다.

함수 프로토타입:

void solidcircle(
	int x,
	int y,
	int radius
);

매개변수 설명:

x: 원 중심의 x 좌표

y: 원 중심의 y 좌표

반지름: 원의 반지름

2, setfillcolor

이 기능은 현재 장치 채우기 색상을 설정하는 데 사용됩니다.

함수 프로토타입:

void setfillcolor(COLORREF color);

매개변수 설명:

색상: 채우기 색상

3. getbkcolor

이 함수는 현재 장치 배경색을 가져오는 데 사용됩니다.

COLORREF getbkcolor();

4초기화

이 기능은 그리기 창을 초기화하는 데 사용됩니다.

함수 프로토타입:

HWND initgraph(
	int width,
	int height,
	int flag = NULL
);

매개변수 설명:

너비: 그리기 창의 너비

height : 도면 창의 높이

플래그: 그리기 창의 스타일, 기본값은 NULL입니다. 다음 값이 될 수 있습니다.

의미
EW_DBLCLKS 도면 창에서 마우스 더블 클릭 이벤트 지원
EW_NOCLOSE 플롯 창의 닫기 버튼 비활성화
EW_NOMINIMIZE 플롯 창의 최소화 버튼 비활성화
EW_SHOWCONSOLE 콘솔 창 표시

5、클로즈그래프

이 기능은 도면 창을 닫는 데 사용됩니다.

void closegraph();

6, 풋픽셀

이 기능은 점을 그리는 데 사용됩니다.

void putpixel(
	int x,
	int y,
	COLORREF color
);

매개변수

x: 점의 x 좌표

y: 점의 y 좌표

color: 포인트의 색상


 3. 실현 원리

이 프로젝트의 구현 원리는 어렵지 않습니다. 달은 테두리가 없는 채워진 원입니다. 큰 별은 먼저 원을 그린 다음 배경색으로 그 주위에 몇 개의 원을 그리고 작은 별은 점을 그리는 것입니다. 임의의 위치.


4. 튜토리얼

1. 헤더 파일을 엽니다.

#include <graphics.h>

2. 기본 기능에서 창을 초기화합니다(아래 동일).

initgraph(640, 480);

3. 채우기 색상을 설정합니다.

setfillcolor(YELLOW);

4. 테두리가 없는 채워진 원을 그립니다.

solidcircle(450, 80, 50);

우리는 하나의 큰 별을 그리는 것이 아니기 때문에 함수와 함께 하는 것이 좋습니다.

5. 메인 함수 외부에 큰 별을 그리는 함수를 만듭니다.

void star(int x, int y) {
	setfillcolor(YELLOW);
	solidcircle(x, y, 20);
	setfillcolor(getbkcolor());
	solidcircle(x - 20, y - 20, 20);
	solidcircle(x + 20, y - 20, 20);
	solidcircle(x - 20, y + 20, 20);
	solidcircle(x + 20, y + 20, 20);
	return;
}

6. 그런 다음 main 함수에 다음을 작성하십시오.

star(50, 50);
star(570, 400);
star(300, 60);
star(250, 300);
star(50, 400);

그리고 작은 별의 위치는 무작위이기 때문에 난수를 생성하려면 다음이 필요합니다.

7. 헤더 파일을 가져옵니다.

#include <time.h>

8. 메인 함수의 시작 부분에 문장을 작성하세요:

srand((unsigned int)time(NULL));

9. 큰 별을 그리기 위한 코드 뒤에 작은 별을 그리기 위한 코드(백 개)를 추가합니다.

for (int i = 0; i < 100; i++) {
	putpixel(rand() % 640, rand() % 480, YELLOW);
}

종료하기 위해 아무 키나 누르는 효과를 얻으려면 다음이 필요합니다.

10. 헤더 파일을 가져옵니다.

#include <conio.h>

11. 작은 별을 그리는 코드 뒤에 문장을 작성하십시오.

_getch();

12. 마지막으로 창을 닫고 프로그램을 종료합니다.

closegraph();
return 0;

5. 완전한 코드

#include <graphics.h>
#include <time.h>
#include <conio.h>

void star(int x, int y) {
	setfillcolor(YELLOW);
	solidcircle(x, y, 20);
	setfillcolor(getbkcolor());
	solidcircle(x - 20, y - 20, 20);
	solidcircle(x + 20, y - 20, 20);
	solidcircle(x - 20, y + 20, 20);
	solidcircle(x + 20, y + 20, 20);
	return;
}

int main() {
	srand((unsigned int)time(NULL));
	initgraph(640, 480);
	setfillcolor(YELLOW);
	solidcircle(450, 80, 50);
	star(50, 50);
	star(570, 400);
	star(300, 60);
	star(250, 300);
	star(50, 400);
	for (int i = 0; i < 100; i++) {
		putpixel(rand() % 640, rand() % 480, YELLOW);
	}
	_getch();
	closegraph();
	return 0;
}

자, 오늘은 여기까지입니다. 기사에 참조가 있습니다. 마음에 드시면 지원해주세요!

рекомендация

отblog.csdn.net/qq_43546083/article/details/126548294