SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
[5분 따라하기]
3차원 도넛을 콘솔에 그리기
박재호(jrogue@gmail.com)
참고 자료
• <컴퓨터 vs 책> 블로그
• http://jhrogue.blogspot.com/
• OKdevTV 유튜브 방송
• 오늘자 방송:
• https://www.youtube.com/watch?v=nmX_99KsjvQ&list=PLdntWJk2tJPLKNNYBVCxnd
e2PEB6dzbSL&index=12
• 5분 따라하기 리스트:
• https://www.youtube.com/playlist?list=PLdntWJk2tJPLKNNYBVCxnde2PEB6dzbSL
• 슬라이드 셰어
• https://www.slideshare.net/jrogue/presentations
• ASCIINEMA
• https://asciinema.org/~jrogue
오늘 소개할 내용
• 3차원 도넛을 콘솔에서 보여주는 재미있는 예
• 이론편
• https://www.a1k0n.net/2011/07/20/donut-math.html
• 실전편
• https://www.a1k0n.net/2006/09/15/obfuscated-c-donut.html
소스 코드 완성본
#include <stdio.h>
#include <string.h>
#include <math.h>
k;double sin()
,cos();main(){float A=
0,B=0,i,j,z[1760];char b[
1760];printf("x1b[2J");for(;;
){memset(b,32,1760);memset(z,0,7040)
;for(j=0;6.28>j;j+=0.07)for(i=0;6.28
>i;i+=0.02){float c=sin(i),d=cos(j),e=
sin(A),f=sin(j),g=cos(A),h=d+2,D=1/(c*
h*e+f*g+5),l=cos (i),m=cos(B),n=s
in(B),t=c*h*g-f* e;int x=40+30*D*
(l*h*m-t*n),y= 12+15*D*(l*h*n
+t*m),o=x+80*y, N=8*((f*e-c*d*g
)*m-c*d*e-f*g-l *d*n);if(22>y&&
y>0&&x>0&&80>x&&D>z[o]){z[o]=D;;;b[o]=
".,-~:;=!*#$@"[N>0?N:0];}}/*#****!!-*/
printf("x1b[H");for(k=0;1761>k;k++)
putchar(k%80?b[k]:10);A+=0.04;B+=
0.02;}}/*****####*******!!=;:~
~::==!!!**********!!!==::-
.,~~;;;========;;;:~-.
..,--------,*/
보면서 따라해봅시다~~~
• https://asciinema.org/a/343208

Mais conteúdo relacionado

Mais procurados

2020년 9월 26일 개발자 이야기
2020년 9월 26일 개발자 이야기2020년 9월 26일 개발자 이야기
2020년 9월 26일 개발자 이야기Jay Park
 
2020년 7월 4일 개발 이야기 정리
2020년 7월 4일 개발 이야기 정리2020년 7월 4일 개발 이야기 정리
2020년 7월 4일 개발 이야기 정리Jay Park
 
2020년 4월 25일 개발 이야기 정리
2020년 4월 25일 개발 이야기 정리2020년 4월 25일 개발 이야기 정리
2020년 4월 25일 개발 이야기 정리Jay Park
 
[5분 따라하기] 전화번호와 이메일 정규표현식
[5분 따라하기] 전화번호와 이메일 정규표현식[5분 따라하기] 전화번호와 이메일 정규표현식
[5분 따라하기] 전화번호와 이메일 정규표현식Jay Park
 
[5분 따라하기] git 다중 사용자 신원 설정 방법
[5분 따라하기] git 다중 사용자 신원 설정 방법[5분 따라하기] git 다중 사용자 신원 설정 방법
[5분 따라하기] git 다중 사용자 신원 설정 방법Jay Park
 
2021년 3월 13일 개발자 이야기
2021년 3월 13일 개발자 이야기2021년 3월 13일 개발자 이야기
2021년 3월 13일 개발자 이야기Jay Park
 
2020년 8월 8일 개발 이야기 정리
 2020년 8월 8일 개발 이야기 정리 2020년 8월 8일 개발 이야기 정리
2020년 8월 8일 개발 이야기 정리Jay Park
 
2021년 3월 20일 개발자 이야기
2021년 3월 20일 개발자 이야기2021년 3월 20일 개발자 이야기
2021년 3월 20일 개발자 이야기Jay Park
 
2020년 9월 12일 개발 이야기 정리
2020년 9월 12일 개발 이야기 정리2020년 9월 12일 개발 이야기 정리
2020년 9월 12일 개발 이야기 정리Jay Park
 
2020년 9월 19일 개발자 이야기
2020년 9월 19일 개발자 이야기2020년 9월 19일 개발자 이야기
2020년 9월 19일 개발자 이야기Jay Park
 
[5분 따라하기] git으로 undo하기(local편)
[5분 따라하기] git으로 undo하기(local편)[5분 따라하기] git으로 undo하기(local편)
[5분 따라하기] git으로 undo하기(local편)Jay Park
 
2020년 10월 10일 개발자 이야기
2020년 10월 10일 개발자 이야기2020년 10월 10일 개발자 이야기
2020년 10월 10일 개발자 이야기Jay Park
 
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기Jay Park
 
2020년 8월 30일 개발 이야기 정리
2020년 8월 30일 개발 이야기 정리2020년 8월 30일 개발 이야기 정리
2020년 8월 30일 개발 이야기 정리Jay Park
 
2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기Jay Park
 
[5분 따라하기] bash 타임아웃 패턴
[5분 따라하기] bash 타임아웃 패턴[5분 따라하기] bash 타임아웃 패턴
[5분 따라하기] bash 타임아웃 패턴Jay Park
 
2020년 6월 13일 개발 이야기 정리
2020년 6월 13일 개발 이야기 정리2020년 6월 13일 개발 이야기 정리
2020년 6월 13일 개발 이야기 정리Jay Park
 
[5분 따라하기] bash에서 파일 확장자 변경
[5분 따라하기] bash에서 파일 확장자 변경[5분 따라하기] bash에서 파일 확장자 변경
[5분 따라하기] bash에서 파일 확장자 변경Jay Park
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기Jay Park
 
2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리Jay Park
 

Mais procurados (20)

2020년 9월 26일 개발자 이야기
2020년 9월 26일 개발자 이야기2020년 9월 26일 개발자 이야기
2020년 9월 26일 개발자 이야기
 
2020년 7월 4일 개발 이야기 정리
2020년 7월 4일 개발 이야기 정리2020년 7월 4일 개발 이야기 정리
2020년 7월 4일 개발 이야기 정리
 
2020년 4월 25일 개발 이야기 정리
2020년 4월 25일 개발 이야기 정리2020년 4월 25일 개발 이야기 정리
2020년 4월 25일 개발 이야기 정리
 
[5분 따라하기] 전화번호와 이메일 정규표현식
[5분 따라하기] 전화번호와 이메일 정규표현식[5분 따라하기] 전화번호와 이메일 정규표현식
[5분 따라하기] 전화번호와 이메일 정규표현식
 
[5분 따라하기] git 다중 사용자 신원 설정 방법
[5분 따라하기] git 다중 사용자 신원 설정 방법[5분 따라하기] git 다중 사용자 신원 설정 방법
[5분 따라하기] git 다중 사용자 신원 설정 방법
 
2021년 3월 13일 개발자 이야기
2021년 3월 13일 개발자 이야기2021년 3월 13일 개발자 이야기
2021년 3월 13일 개발자 이야기
 
2020년 8월 8일 개발 이야기 정리
 2020년 8월 8일 개발 이야기 정리 2020년 8월 8일 개발 이야기 정리
2020년 8월 8일 개발 이야기 정리
 
2021년 3월 20일 개발자 이야기
2021년 3월 20일 개발자 이야기2021년 3월 20일 개발자 이야기
2021년 3월 20일 개발자 이야기
 
2020년 9월 12일 개발 이야기 정리
2020년 9월 12일 개발 이야기 정리2020년 9월 12일 개발 이야기 정리
2020년 9월 12일 개발 이야기 정리
 
2020년 9월 19일 개발자 이야기
2020년 9월 19일 개발자 이야기2020년 9월 19일 개발자 이야기
2020년 9월 19일 개발자 이야기
 
[5분 따라하기] git으로 undo하기(local편)
[5분 따라하기] git으로 undo하기(local편)[5분 따라하기] git으로 undo하기(local편)
[5분 따라하기] git으로 undo하기(local편)
 
2020년 10월 10일 개발자 이야기
2020년 10월 10일 개발자 이야기2020년 10월 10일 개발자 이야기
2020년 10월 10일 개발자 이야기
 
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
 
2020년 8월 30일 개발 이야기 정리
2020년 8월 30일 개발 이야기 정리2020년 8월 30일 개발 이야기 정리
2020년 8월 30일 개발 이야기 정리
 
2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기2021년 4월 10일 개발자 이야기
2021년 4월 10일 개발자 이야기
 
[5분 따라하기] bash 타임아웃 패턴
[5분 따라하기] bash 타임아웃 패턴[5분 따라하기] bash 타임아웃 패턴
[5분 따라하기] bash 타임아웃 패턴
 
2020년 6월 13일 개발 이야기 정리
2020년 6월 13일 개발 이야기 정리2020년 6월 13일 개발 이야기 정리
2020년 6월 13일 개발 이야기 정리
 
[5분 따라하기] bash에서 파일 확장자 변경
[5분 따라하기] bash에서 파일 확장자 변경[5분 따라하기] bash에서 파일 확장자 변경
[5분 따라하기] bash에서 파일 확장자 변경
 
2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기2021년 1월 30일 개발자 이야기
2021년 1월 30일 개발자 이야기
 
2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리2020년 5월 9일 개발 이야기 정리
2020년 5월 9일 개발 이야기 정리
 

Mais de Jay Park

(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지Jay Park
 
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)Jay Park
 
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)Jay Park
 
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)Jay Park
 
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략Jay Park
 
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학Jay Park
 
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드Jay Park
 
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰Jay Park
 
(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임Jay Park
 
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결Jay Park
 
(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서Jay Park
 
(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람Jay Park
 
(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린Jay Park
 
(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의Jay Park
 
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트Jay Park
 
(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다Jay Park
 
(독서광) 사실은 이것도 디자인입니다
(독서광) 사실은 이것도 디자인입니다(독서광) 사실은 이것도 디자인입니다
(독서광) 사실은 이것도 디자인입니다Jay Park
 
(독서광) 프로덕트 매니지먼트
(독서광) 프로덕트 매니지먼트(독서광) 프로덕트 매니지먼트
(독서광) 프로덕트 매니지먼트Jay Park
 
(독서광) 슬기로운 파이썬 트릭
(독서광) 슬기로운 파이썬 트릭(독서광) 슬기로운 파이썬 트릭
(독서광) 슬기로운 파이썬 트릭Jay Park
 

Mais de Jay Park (20)

(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
(독서광) 쉽고 빠르게 익히는 실전 LLM - ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지
 
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
(독서광) LEAN HR - 당신의 스타트업은 안녕하십니까 (한빛미디어 2024)
 
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
(독서광) 구술 문화와 문자 문화: 출간 30주년 기념판 (전후 해제 포함)
 
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
(독서광) 테드 창의 숨 (아홉 가지 단편/중편 SF 과학 소설 모음집)
 
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
(독서광) 이제는 이기는 인생을 살고 싶다 - 적을 만들지 않고 단번에 갈등을 풀어내는 백전백승 변호사의 지혜지략
 
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
(독서광) 프로덕트 매니저 원칙: 10년이 가도 변하지 않을 PM/PO로 살아가는 원칙과 철학
 
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
(독서광) 개발자로 첫 출근했어요 - 사내 개발 도구, 기술, 문화 적응 가이드
 
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
(독서광) 책 vs 책: 코딩 테스트 합격자 되기 vs 파이썬 알고리즘 인터뷰
 
(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임(독서광) 테니스 이너 게임
(독서광) 테니스 이너 게임
 
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
 
(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서(독서광) 모던 리눅스 교과서
(독서광) 모던 리눅스 교과서
 
(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람(독서광) 상자 밖에 있는 사람
(독서광) 상자 밖에 있는 사람
 
(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린(독서광) 자바 알고리즘 인터뷰 with 코틀린
(독서광) 자바 알고리즘 인터뷰 with 코틀린
 
(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의(독서광) 리그 오브 레전드 플레이어 중심주의
(독서광) 리그 오브 레전드 플레이어 중심주의
 
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
(일상다반사) 2023년 구독자 3,000명 돌파 이벤트
 
(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다(독서광) 오늘날 우리는 컴퓨터라 부른다
(독서광) 오늘날 우리는 컴퓨터라 부른다
 
(독서광) 사실은 이것도 디자인입니다
(독서광) 사실은 이것도 디자인입니다(독서광) 사실은 이것도 디자인입니다
(독서광) 사실은 이것도 디자인입니다
 
(독서광) 프로덕트 매니지먼트
(독서광) 프로덕트 매니지먼트(독서광) 프로덕트 매니지먼트
(독서광) 프로덕트 매니지먼트
 
(독서광) 슬기로운 파이썬 트릭
(독서광) 슬기로운 파이썬 트릭(독서광) 슬기로운 파이썬 트릭
(독서광) 슬기로운 파이썬 트릭
 

[5분 따라하기] 3차원 도넛을 콘솔에 그리기

  • 1. [5분 따라하기] 3차원 도넛을 콘솔에 그리기 박재호(jrogue@gmail.com)
  • 2. 참고 자료 • <컴퓨터 vs 책> 블로그 • http://jhrogue.blogspot.com/ • OKdevTV 유튜브 방송 • 오늘자 방송: • https://www.youtube.com/watch?v=nmX_99KsjvQ&list=PLdntWJk2tJPLKNNYBVCxnd e2PEB6dzbSL&index=12 • 5분 따라하기 리스트: • https://www.youtube.com/playlist?list=PLdntWJk2tJPLKNNYBVCxnde2PEB6dzbSL • 슬라이드 셰어 • https://www.slideshare.net/jrogue/presentations • ASCIINEMA • https://asciinema.org/~jrogue
  • 3. 오늘 소개할 내용 • 3차원 도넛을 콘솔에서 보여주는 재미있는 예 • 이론편 • https://www.a1k0n.net/2011/07/20/donut-math.html • 실전편 • https://www.a1k0n.net/2006/09/15/obfuscated-c-donut.html
  • 4. 소스 코드 완성본 #include <stdio.h> #include <string.h> #include <math.h> k;double sin() ,cos();main(){float A= 0,B=0,i,j,z[1760];char b[ 1760];printf("x1b[2J");for(;; ){memset(b,32,1760);memset(z,0,7040) ;for(j=0;6.28>j;j+=0.07)for(i=0;6.28 >i;i+=0.02){float c=sin(i),d=cos(j),e= sin(A),f=sin(j),g=cos(A),h=d+2,D=1/(c* h*e+f*g+5),l=cos (i),m=cos(B),n=s in(B),t=c*h*g-f* e;int x=40+30*D* (l*h*m-t*n),y= 12+15*D*(l*h*n +t*m),o=x+80*y, N=8*((f*e-c*d*g )*m-c*d*e-f*g-l *d*n);if(22>y&& y>0&&x>0&&80>x&&D>z[o]){z[o]=D;;;b[o]= ".,-~:;=!*#$@"[N>0?N:0];}}/*#****!!-*/ printf("x1b[H");for(k=0;1761>k;k++) putchar(k%80?b[k]:10);A+=0.04;B+= 0.02;}}/*****####*******!!=;:~ ~::==!!!**********!!!==::- .,~~;;;========;;;:~-. ..,--------,*/