d라이브러리









BASIC 강좌⑨ 퍼스널컴퓨터의 그래픽기능

퍼스널 컴퓨터의 특징중 하나인 그래픽기능을 이용하여 계산된 데이타를 그림으로 나타낼 수 있다. 이번 강좌에는 8피트 퍼스널 컴퓨터인 APPLE II호환기종에서 사용할 수 있는 그래픽기능을 이용하여 함수그래프를 그려보자

 

확대되는 그래픽기능
 

대부분의 퍼스널 컴퓨터는 그래픽을 처리하기 위한 하드웨어를 내장하고 있으며 그래픽기능이 설계에서 누락되면 그 퍼스널컴퓨터는 생명력을 잃어버렸다해도 과언이 아니다. 표현하는 색도 흑백에서 컬러까지 메모리가 허용하는 한도내에서 다양하게 나타낼 수 있다.
 

또한 반도체제조기술의 발전에 따라 그래픽을 전문적으로 처리할 수 있는 전용그래픽칩들이 개발되어 시스팀설계가 쉬워져 가고 있다. 따라서 최근에 시판되는 소프트웨어들은 퍼스널컴퓨터의 그래픽 기능을 살려서 설계되는 쪽으로 발전하고 있다. 모니터화면에 그림을 그리려면 단순한 명령의 이해만으로는 효율적으로 소프트웨어를 구사할 수 없기 때문에 먼저 그림이 나타나는 과정을 간단하게 설명하겠다. (그림1)은 일반적인 퍼스널컴퓨터의 그래픽기능이 어떻게 구현되는지를 보여준다.
 

(그림 1) 퍼스널컴퓨터의 그래픽처리


비디오램은 화면에 출력될 그림을 ‘1’과 ‘0’으로 나타내주는 부분이며 출력화면의 수정을 위해서도 RAM에 할당된다. 모니터화면 하나에 출력되는 모든 내용이 해당 비디오램에 기억되는 것이다. APPLE II 시스팀에는 비디오램이 16KByte를 차지한다. 그리고 두개의 화면을 비디오램에 상주시킬 수 있다. (그림2)는 APPLE II에서 사용하는 비디오램의 메모리상 위치를 보여준다.
 

(그림 2) 비디오램


동시에 비디오램이 두개가 선택될수 없기 때문에 HGR페이지와 HGR2페이지는 선택적으로 동작한다. 즉 HGR페이지의 내용이 화면에 출력되며 HGR2 명령어로는 HGR2페이지의 내용을 화면에 출력시킬 수 있다.
 

APPLE II의 그래픽에 관한 명령어가 여러가지 있지만 꼭 필요한 것만 설명하겠다. 먼저 HGR과 HGR2의 차이점은 표시화면의 크기에 있다. HGR의 화면은 아래에 4줄의 공간에 문자를 나타낼 수 있도록 설계되어 있다. 별다른 조작을 하지 않는 한 그림상에 문자를 나타낼 수 없으나 HGR2화면에서는 4행에 걸쳐 원하는 문자를 나타낼 수 있다. (그림3)은 HGR과 HGR2 화면의 차이를 보여준다.
 

APPLE II를 사용해서 그래픽 명령을 실행시켜 보자. 먼저 HGR을 입력시켜 HGR화면이 선택되는지 확인하여 보자. (그림3)의 HGR 화면이 출력될 것이다. 다시 HGR2를 입력하면 HGR2 화면이 선택되면서 화면에는 아무것도 보이지 않을 것이다. 이때 모든상태를 원위치 하기 위해 TEXT를 입력하여 보자. 화면은 정상화면으로 돌아와서 프로그램을 작성할 수 있다.

 

(그림 3)APPLE Ⅱ의 HER과 HGR2 화면

 

그래픽 명령
 

사용하려는 그래픽 화면이 선택되면 그림을 그리는 명령을 사용하여 원하는 그림을 그려갈 수 있다. APPLE II에서 사용하는 APPLE SOFT BASIC 인터프리터는 화면 구성을 위해서 점(DOT)을 찍는 명령과 직선(LINE)을 긋는 명령밖에 없다. 그리고 점과 직선의 색을 지정해주는 HCOLOR명령이 있다. 본 강좌에서는 HCOLOR=3으로 지정해주기로 한다. 대부분 여러분들이 사용하는 모니터가 흑백, 모노크롬 모니터이기 때문이다. HCOLOR=3은 흑백모드로 그림을 그리겠다는 뜻이다.

HGR 화면을 선택하여 다음 명령들을 차례로 입력시켜보자.

 

HCOLOR=3

HPLOT 10, 10

HPLOT 20, 20 TO 40, 40

HPLOT TO 200, 100

 

이와같이 입력하면 (그림4)와 같이 출력된다. 방금 사용했던 명령들을 다른 값에 대해 반복시켜 보면 화면에 그림이 나타나는 위치가 달라지는 것을 확인할 수 있을 것이다. HGR화면이나 HGR2 화면에서 사용할 수 있는 값의 범위는 (그림5)와 같다.

 

(그림 4) HGR 화면 출력예

(그림 5) HGR화면과 HGR2 화면의 좌표


꺾은선 그래프를 그려보자
 

신문에서 주식의 변동을 꺾은선 그래프로 그려놓은 것을 본적이 있을 것이다. 가로축에 각 기준점에 대해 해당 값들을 입력하여 화면에 꺾은선 그래프를 그리는 프로그램을 작성해보자. 화면에 그림을 그릴 때는 모니터화면의 물리적한계가 있기 때문에 큰 그림을 다 표현할 수 없는 경우가 생긴다. 따라서 먼저 고려해야 될 사항은 다음과 같다.

 

1. 어느 정도로 크게 그릴 것인가?

2. 어느 위치에 그릴 것인가?

 

첫번째 사항에 대해서는 처리하려는 데이타의 최대, 최소값을 살펴보아야한다. 그리고 값의 크기에 따라 축소 혹은 확대를 시켜야 할 필요가 생긴다. (그림6)의 꺾은선 그래프를 그리는 프로그램은 X축이 양의 정수로만 주어지는 것으로 가정했고 Y축의 값도 양수만 사용하는 것으로 가정했다.
 

그래프를 화면에 나타내기전에 X축의 등 가격표시를 BASIC프로그램의 230번 문장으로 처리하고 있다. 입력된 데이타의 최대값을 미리 알려주면 프로그램은 Y축의 값들을 일정비율로 화면에 나타내기 위해 축소 혹은 확대비율을, 230번 문장으로 계산해낸다.

일단 좌표와 축소·확대비가 결정되면 화면에 그래프를 그려갈 수 있다. 처음에 입력된 값에 대해서만 HPLOT명령으로 점만 찍어 주고 다음 값부터는 직선을 그어가면 원하는 꺾은선 그래프를 얻을 수 있다.

 

(그림 6) 꺾은선 그래프를 그리는 프로그램

(그림 7) 꺾은선 그래프의 출력 결과
 

막대그래프를 그려보자
 

꺾은선 그래프는 X값에 따라 계속 직선으로 연결해 가면 된다. 그러나 막대 그래프는 해당 Y값에 따라 막대를 그리는 과정을 더 작성해야 한다. APPLE SOFT BASIC의 그래픽명령에는 네모를 직접 그려낼 수 있는 명령이 없지만 직선을 그리는 명령으로도 이를 대신 할수 있기 때문에 막대그래프를 자연스럽게 그려낼 수 있다.X축에 배열되는 막대의 갯수에 따라 막대의 굵기를 조절하도록 프로그램을 설계하여 보았다. (그림8)의 프로그램중 300번 문장에서 사용한 상수 0.7을 다른 값으로 바꾸어 주면 막대의 굵기가 조절된다. 그리고 X축에 배열되는 막대의 갯수에 따라서도 막대의 굵기가 달라진다. 여러 값들에 대해 프로그램을 실행시켜 보고 프로그램의 처리과정을 이해해주기 바란다.
 

프로그램은 해당 데이타의 막대표시를 막대가 아래에서 해당위치까지 위로 올라오도록 설계되어 있어 좀더 생동감있게 보일 것이다. 막대의 색깔을 변화시켜 보려면 30번 문장 ‘HCOLOR=3’숫자를 변화시키면 된다. HCOLOR가 가질 수 있는 값은 0부터 7까지이다. 프로그램을 수정하여 각 막대의 색깔을 바꿀 수 있다. 270~340번 내에 문장을 수정하여 막대의 색을 표시할 수 있도록 하여보자.

(그림8)의 프로그램을 실행시켜 결과를 보인 것이 (그림9)와 (그림10)이다.

 

(그림 8) 막대그래프를 그리는 프로그램


(그림 9) 데이타 10개에 대한 막대그래프 출력의 예

 

(그림 10) 데이타 40개에 대한 막대그래프 출력의 예


함수그래프는 어떻게
 

과학계산에서 함수를 많이 사용하는데 함수의 값의 변화를 추적할 수 있도록 화면에 함수의 그래프를 그려볼 수 있다. 화면의 물리적 한계 때문에 X축의 표시 구간이 먼저 설정되어야 하며 Y축도 값의 크기에 따라 확대 또는 축소되어야 한다. 본 강좌에서는 Y축의 확대, 축소비를 임의로 선택할 수 있도록 하였다. 함수의 그래프를 그리는 도중 에러(Error)가 발생하면 확대 축소비를 조정하여야 한다.
 

(그림11)은 주어진 함수로 부터 변화 구간을 설정해주면 화면에 그래프를 그려주는 프로그램이다. 5번 문장으로 그리고자 하는 함수를 선언해주면 된다.
 

(그림12)에 출력된 그래프는 P(x)=sin(2x)+cos(x)의 그래프이다. X축상의 값의 범위를 변화시켜 가면서 프로그램을 실행시켜 보자. 그리고 화면에 그래프가 너무 작게 나타나면 확대비를 크게 해주면 된다. (그림13)은 X축상의 구간과 확대비를 변화시켜서 그래프를 그려본 예이다. 본 강좌에서 사용한 그래프의 출력예는 다음 명령에 의해 프린터로 출력된 것이다. 화면 출력을 프린터로 복사하는 방법은 다음과 같다.

 

 PR#1

 POKE 1913, 65

 Control Q

 

(그림 11) 함수그래프를 그리는 프로그램


(그림 12) P(x=sin(2x)+cos(x) 그래프 출력의 예)

 

(그림 13) 확대비율을 변화시킨 실행예

 

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

1987년 05월 과학동아 정보

  • 조동섭 교수

🎓️ 진로 추천

  • 컴퓨터공학
  • 소프트웨어공학
  • 정보·통신공학
이 기사를 읽은 분이 본
다른 인기기사는?