2014-03-04 2 views
0

저는 놀랍게도 도전적인 것처럼 보이려고했습니다. 즉, 커맨드 라인 (Mac OS X 용 터미널)에 정삼각형을 인쇄하는 것입니다. 필자는 파스칼 삼각형의 n 번째 행을 사용자 지정 상수까지 계산할 수있는 프로그램을 가지고 있습니다. 잘 알려진 바와 같이 파스칼의 삼각형 2를 값으로 취하면이 값과 Sierpinski's triangle 사이에 상관 관계가 있습니다.터미널에 정삼각형을 인쇄하십시오.

홀수 값을 1로 설정하고 짝수 값을 0으로 설정하고 터미널에서 결과를 인쇄하고 축소하면 명확하게 균등하지 않다는 점을 제외하고는보기 좋게 보입니다.

enter image description here

하지만 궁금하네요 ... 정삼각형 모양이 삼각형을 얻을 수있는 방법이 여기있다 : (0과는 많이 다를 수 있으므로) 밖으로 방식으로 확대 후 내 프로그램의 예 출력은 ? 아니면 출력을 다른 곳에서 인쇄해야합니까? 나는 다른 글꼴, 다른 선 너비 수준으로 실험 해왔다. 그러나 나는 등변을 가까이서 볼 수있는 것을 얻을 수 없다. 그리고 그렇다고해도 나는 이것을 확인하는 신뢰할만한 방법이 없다. 문제의 일부는 터미널의 확대/축소가 다른 선 너비와 높이 배율로 이어진다는 것입니다.

내 코드는 생성 할 행 수를 입력으로 사용합니다. 그런 다음 각 행을 인쇄 할 때 해당 번호가 고려됩니다. 따라서 첫 번째 행 (단일 "1")은 1을 인쇄하기 전에 n-1 공백을 갖습니다. 그런 다음 두 번째 행은 실제 내용 ("1 1")을 인쇄하기 전에 n - 2 공백을 인쇄해야합니다.), 각 숫자 사이에 공백이 포함됩니다. 그것은 C++에 있지만, 중요하다고 생각하지 않습니다.

이미지를 가져 오는 다른 방법을 찾아야 할 것이라고 생각합니다. 사용하려는 라이브러리에 대한 조언은 훌륭합니다.

+0

대부분의 문자 유형은 넓은보다 키가 있습니다, 그래서 인쇄 된 문자를 사용하여 어려울 것입니다. – trumpetlicks

+0

출력에서 ​​"셀 위치"당 2 또는 3 문자는 대개 대략 정사각형 셀입니다. 우리가 팁을 다룰 때 modulo 2 결과에 대해 바이너리 0과 1, 그리고 위의 두 값을 XOR로 저장하면됩니다. 또한 다른 색상을 사용하면 모듈로 3 (말)이 더 재미있을 수 있습니다. :-) –

+0

아, 더 재미있게하려면 위치 (x, y)에'x & y'를 출력하는 것을 고려하십시오. 그 사람. –

답변

0

삼각형을 선택한 래스터 형식으로 렌더링하고 해당 이미지를 터미널에 렌더링하려면 aalib 또는 libcaca을 사용하는 것이 좋습니다.

0

나는 이미지의 실제 너비와 높이를 파악하고 이미지 크기를 정의하는 2D 행렬을 생성하려고합니다. 이 행렬은 2D 세트의 정수 (8 비트 색상 구성 요소를위한 공간을 제공하는 24 비트 이하의 폭) 또는 3 개의 개별 2D 행렬, 즉 각 색상 구성 요소에 대해 하나가 될 수 있습니다. 모든 값을 배경색을 원하는대로 설정하십시오.

알고리즘을 통해 이동하여 실제 삼각형을 표시 할 다른 색상으로 적절한 픽셀을 설정하십시오.

그런 행렬을 .bmp (또는 비트 맵) 파일에 쓰려면 여기를보십시오.

Writing BMP image in pure c/c++ without other libraries