본문 바로가기
스터디/OpenGL

[ OpenGL ] 도형 익히기

by 알 수 없는 사용자 2019. 10. 31.

( ** 인프런에서 들은 강의 '홍정모의 게임 만들기 연습 문제 패키지'를 통해서 공부한 내용과 연습 문제 풀이입니다. **)

 

// MyExample2
	class MyExample2 : public Game2D
	{
	private:
		void Make_grape(); // 포도 송이 그리는 함수
	public:
		void update() override
		{
			// 청포도 만들기
			setLineWidth(1);

			// 뿌리 부분
			beginTransformation();
			{
				translate(0.0f, 0.45f);
				drawFilledBox(Colors::olive, 0.05f, 0.1f);
				drawWiredBox(Colors::black, 0.05f, 0.1f);
			}
			endTransformation();

			beginTransformation();
			{
				translate(0.0f, 0.5f);
				drawFilledBox(Colors::olive, 0.5f, 0.05f);
				drawWiredBox(Colors::black, 0.5f, 0.05f);
			}
			endTransformation();

			// 첫번째 줄 송이들
			beginTransformation();
			{
				translate(-0.4f, 0.3f);
				Make_grape();
				
				translate(0.2f, 0.0f);
				Make_grape();
				
				translate(0.2f, 0.0f);
				Make_grape();
				
				translate(0.2f, 0.0f);
				Make_grape();

				translate(0.2f, 0.0f);
				Make_grape();
			}
			endTransformation();

			// 두번째 줄 송이들
			beginTransformation();
			{
				translate(-0.3f, 0.12f);
				Make_grape();

				translate(0.2f, 0.0f);
				Make_grape();

				translate(0.2f, 0.0f);
				Make_grape();

				translate(0.2f, 0.0f);
				Make_grape();
			}
			endTransformation();

			// 세번째 줄 송이들
			beginTransformation();
			{
				translate(-0.2f, -0.06f);
				Make_grape();

				translate(0.2f, 0.0f);
				Make_grape();

				translate(0.2f, 0.0f);
				Make_grape();

			}
			endTransformation();

			// 네번째 줄 송이들
			beginTransformation();
			{
				translate(-0.1f, -0.24f);
				Make_grape();

				translate(0.2f, 0.0f);
				Make_grape();

			}
			endTransformation();

			// 다섯번째 줄 송이
			beginTransformation();
			{
				translate(0.0f, -0.42f);
				Make_grape();

			}
			endTransformation();

		}

	};
    
    
	void MyExample2::Make_grape()
	{
		drawFilledCircle(Colors::green, 0.1f);
		drawWiredCircle(Colors::black, 0.1f);
	}

 

 

**** 키워드 : 점과 점 사이의 선 잇기, 도형 그리고 색 채우기 ****