지오메트리 답변에 간단한 2D 일러스트레이션을 생성하는 방법은 무엇입니까?


14

Affine Transformations 에 대한 대답에서 나는 설명을 돕기 위해 약간의 그림을 만들었습니다.

기하학적 또는 수학 아이디어를 표현하는 업로드 가능한 PNG를 어떻게 빠르게 만들 수 있습니까?

이 질문은 포스트 스크립트 답변을 지원하기 위해 고안되었지만 SE 네트워크에 더 일반적으로 도움이 될 수있는 다른 솔루션을 요청하기위한 것입니다. 그러나 신뢰성을 위해이 기술이 실제로 사용 된 게시물과 "메뉴에서 내보내기 선택"과 같이 명백한 것 이상이 필요한 경우 충분한 "하우투"부분으로 연결해야합니다.

이 개 메타 질문이 있습니다 여기여기에 범위에 우위들에 비추어이 질문은 우리의 사이트에 설정할 수 있습니다 방법에 관하여는.


2
개인적 으로이 질문은 컴퓨터 그래픽보다 포스트 스크립트에서 더 많이 보입니다.
cifz

1
@cifz 맞습니다. 이것은 GD.SE에 더 잘 맞습니다 . 그러나 그것이 여기에없는 이유는 아닙니다.
joojaa

@ citz 무슨 말인지 알 것 같아요. 내가 질문에서 그것을 꺼내어 tikz와 asymptote를 위해 열면 어떻게 될까요?
luser droog

나는 이것이 질문으로 약간의 의견을 가지고 있으며 대답은 분명히 될 것임을 보여주기 위해 여기에 대답하고 있습니다. 이 전체 스레드는 GD.SE 에서와 같이 메타에 있어야 합니다. 모든 생각, @cifz
joojaa

답변:


13

나는 현재의 특정 요구에 따라 다양한 도구를 사용합니다. Illustrator 나 Mathematica와 같은 것에 액세스 할 수 없으므로 무료 도구에 대한 편견이 있습니다.

일반적인 벡터 아트 목적으로 무료 Inkscape를 사용합니다 . .svg 파일에서 작동하며 고품질 .png 또는 기타 비트 맵 형식으로 렌더링 할 수도 있습니다. 예를 들어, UV 매핑을 설명하기 위해 Inkscape 에서 만든 다이어그램은 다음과 같습니다.

2D 함수 그래프의 경우 종종 온라인 그래프 계산기 Desmos를 사용합니다.이 그래프 는 다른 사용자가 그래프를보고 수정할 수 있도록 온라인으로 그래프를 공유 할 수있는 편리한 기능을 갖추고 있습니다. 곡선 매개 변수를 실시간으로 재생하도록 변할 수있는 슬라이더를 만들 수도 있습니다. 예를 들어, 다음은 구성 가능한 선명 화 기능 입니다.

약간의 프로그래밍이 필요한 복잡한 그래프 작업 에는 그래프 기능이있는 무료 컴퓨터 대수 시스템 인 Maxima를 사용 합니다. Maxima를 사용하여 가우시안 블러에 대한이 답변 의 그래프를 만들었습니다 .

프로그래밍 방식으로 가우시안의 근사치를 만드는 과정이 포함되어 있기 때문에 이것은 Desmos에게는 너무 복잡했습니다.

다른 것으로 잘 처리되지 않는 이상한 그래프 작업을 위해 svgwrite 패키지 와 함께 Python을 사용 하여 프로그래밍 방식으로 다이어그램을 .svg 파일로 생성했습니다. 원하는 경우 Inkscape에서이를 터치하고 Inkscape 또는 ImageMagick을 사용하여 비트 맵으로 렌더링 할 수 있습니다. 이 워크 플로를 사용하여 다음과 같이이 블로그 게시물에서 depth precision에 대한 이미지를 만들었습니다 .

이 경우에는 함수를 그래프로 나타낼뿐 아니라 이산 깊이 버퍼 값을 보여주기 위해 축과 그래프를 따라 프로그래밍 방식으로 그리고 불균일하게 눈금 표시를하고 싶었습니다.

마지막으로, 다른 것이 충분하지 않으면 파이썬을 numpypillow 과 함께 사용 하여 이미지를 픽셀 단위로 렌더링합니다. 이것이 내가이 답변 에서 Perlin 노이즈 이미지를 만든 방법입니다 ( 이 경우 노이즈 패키지 의 도움으로 ).


나단 당신은 깊이 정밀도에 대해 저것을 썼습니까? 와우 멋지다 ... 나는 그 것을 읽고 많은 도움이되었다! small world : P
Alan Wolfe

12

개인적으로 제가 선택한 독은 Adobe Illustrator입니다. inkscape, Corel Draw, Xara Designer와 같은 다른 앱도 가능합니다. 조금이라도 파워 포인트도 작동합니다. 데이터 모델의 심각한 문제로 인해 개인적으로 PowerPoint를 권장하지는 않지만 세계에서 가장 많이 배포 된 드로잉 앱일 수도 있습니다.

또한 그래프 응용 프로그램을 사용하는 것이 좋습니다. 다른 많은 앱도 작동하지만 Mathematica를 개인적으로 사용합니다. 또는 원하는 경우 무료 온라인 수학 버전 인 Wolfram 알파를 사용할 수 있습니다.

면책 조항 : 예는 내 것이기 때문에 뻔뻔스런 자기 보증은 소금 한 덩어리를 취합니다.

일러스트 레이터

벡터 드로잉 앱에서 가장 먼저해야 할 일은 스냅 그리드활성화하는 것 입니다. 이렇게하면 선을 정확하게 배치하는 지루함이 줄어 듭니다. Inkscape를 사용하지 않는 큰 이유 중 하나는이 스냅을 구현하는 열등한 방법입니다. PowerPoint에는 실제로 기본적으로 격자 스냅이 제공됩니다.

Illustrator가 내 요구를 모두 채우지는 못하므로 실제로 만족하지 않습니다. 그러나 지금까지는 소프트웨어가 없습니다 (Maya는이 틈새를 채우는 데 사용되었지만 오토 데스크는 일어났습니다).

Illustrator를 선택하는 두 번째 이유는 포스트 스크립트를 기본적으로 이해하기 때문입니다. 따라서 무언가를 프로그래밍 해야하는 경우 신속하게 수행 할 수 있으며 코드가 성숙함에 따라 기존 문서가 업데이트됩니다. 이미지 3 이이 방식으로 수행됩니다.

  • 일러스트 레이터에 대한 스냅, 포스트 스크립트 및 Java 스크립트 액세스를 보여주는 리소스 및 앞으로 링크.

다음은 주로 그리드 스냅 기능을 사용하여 Illustrator를 사용하여 네트워크에서 수행 한 도면의 예입니다.

서클 행진

이미지 1 :이 사이트의 일러스트 레이터로 그린 많은 이미지 중 하나입니다. 참고 : 저는 경험이 많은 Illustrator (때로는 상용)이며 표준에 따라 매우 간단합니다.

Circle march 이미지는 매우 간단합니다. 주위를 클릭하여 임의의 모양을 그립니다. 이 작업을 수행 한 후 스냅을 해제하고 스마트 가이드가 작업을 수행하도록합니다. 선에서 가장 가까운 점에 선을 그리고 선에 원을 만들고 (완료 후 안내선을 삭제했습니다). 헹구고 반복하십시오. 작업 공간이 시작되면 이미지를 그리는 데 약 3-5 분이 걸렸습니다.

연속파

이미지 2 : GD.SE 연속파 .

이 이미지는 훨씬 더 정교 해 보이지만 첫 번째 이미지보다 훨씬 많은 작업은 아닙니다. 그리드 스냅 I에 더해 기술적으로 향상되었으며 이제 Shift 키를 사용하여 선을 45도 각도로 제한합니다. 일러스트 레이터의 모양 작성 도구를 사용하여 해치 채우기를 영역에 쉽게 할당 할 수 있습니다. ( 사용중인 셰이프 작성기의 예 , 화면 캡처)

테트라 이미지

이미지 3 : 때때로 포스트 스크립트에서 처음부터 시작하기가 더 쉽습니다. 게시 할 이미지가 추가되었습니다ENG.SE .

마지막으로 포스트 스크립트에 값을 입력하여 실제로 더 쉬운 이미지입니다. 포스트 스크립트에서는 비교적 쉽습니다. 나는 여전히 일러스트 레이터에서 타이포그래피를 수행했습니다. 이것을 손으로 그리는 것은 큰 일이 아니지만 내가 눈으로 판단을해야한다면 그것을 할 것입니다.

매스 매 티카

Mathematica는 사물을 조금 더 탐험하고 싶다면 훌륭합니다. Mathematica의 유일한 단점은 싸지 않다는 것입니다. 그러나 거의 모든 것을 빠르게 할 수 있습니다. 나는 간호를 기준으로 내 그림 중 일부에 Mathematica를 사용했습니다 .

Mathematicas의 핵심 역량 중 하나는 많은 번거 로움없이 상당히 복잡한 그림을 쉽게 개발할 수 있다는 것입니다. 또한 편집기 내에서 간단한 그림을 쉽게 애니메이션 할 수 있습니다 .

Graphics[{
    orig = {
        Table[
            GeometricTransformation[
                Line[{{0, 0}, {50, 0}}],
            RotationTransform[ang]],
            {ang, 0, 3 Pi/2, Pi/2}
        ],
        Line[{{20, 0}, {30, 20}, {40, 0}}]
    },
    Red,
    GeometricTransformation[
        orig,
        RotationTransform[Pi/6]
    ]
}]

다른 사람들과 같은 그림으로 나타납니다. 결과를 테이블 감싸면 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

이미지 4 : Mathematica를 사용하여 코드 편집기에서 애니메이션을 간단하게 수행 할 수 있습니다.


4

PostScript + ps2eps + mogrify

를 들어 아핀 변환 대답 , 난 아주 작은 포스트 스크립트 프로그램을 작성하고 다른 이름으로 여러 복사본을 저장하고 각각 다른 작업을 수행하는 각각 편집 : 규모, 회전 변환합니다. 예를 들어, 기본 ident.ps도면은 빨간색 도면과 검정색 도면 간의 좌표를 변경하지 않습니다. 나는 빨간 선을 조금 더 크게 만들고 항상 먼저 그려서 두 개가 멋지게 겹쳐서 보입니다 (IMO). vi (ex) 명령으로 고스트 스크립트로 미리 보았습니다 :!gs %. ( 모든 소스 파일 )

%!
/axis {
    currentpoint 4 { 
        2 copy moveto
            50 0 lineto
            90 rotate
    } repeat pop pop 
} def 
/shape {
    20 0 moveto
    30 20 lineto
    40 0 lineto
    closepath
} def 

100 100 translate

gsave
% do transform here
currentlinewidth 1.5 mul setlinewidth
1 0 0 setrgbcolor
0 0 moveto axis shape stroke
grestore

0 0 moveto axis shape stroke

showpage

그런 다음 ps2epsfrom 명령 을 사용하여 psutils경계 상자를 자동으로 계산했습니다.

$ ps2eps -f *.ps
Input files: ident.ps rotate.ps scale.ps skewx.ps skewy.ps translate.ps
Processing: ident.ps
Calculating Bounding Box...ready. %%BoundingBox: 50 50 150 150
Creating output file ident.eps ... ** Warning **: Weird heading line -- %! -- ready.
Processing: rotate.ps
Calculating Bounding Box...ready. %%BoundingBox: 50 50 150 150
Creating output file rotate.eps ... ** Warning **: Weird heading line -- %! -- ready.
Processing: scale.ps
Calculating Bounding Box...ready. %%BoundingBox: 25 25 175 175
Creating output file scale.eps ... ** Warning **: Weird heading line -- %! -- ready.
Processing: skewx.ps
Calculating Bounding Box...ready. %%BoundingBox: 50 49 150 151
Creating output file skewx.eps ... ** Warning **: Weird heading line -- %! -- ready.
Processing: skewy.ps
Calculating Bounding Box...ready. %%BoundingBox: 49 50 151 150
Creating output file skewy.eps ... ** Warning **: Weird heading line -- %! -- ready.
Processing: translate.ps
Calculating Bounding Box...ready. %%BoundingBox: 50 50 165 165
Creating output file translate.eps ... ** Warning **: Weird heading line -- %! -- ready.

마지막으로 imagemagick의 convert명령을 사용하여 잘린 PNG 이미지를 생성했습니다. (나는이 부분을 자동화하는 빠른 방법을 생각하지 못했습니다. 편집 : 의견이 있듯이 이것은 할 수 있습니다 mogrify -format png *.eps. 감사합니다.

$ convert ident.eps ident.png

josh@cadabra ~/affine
$ convert scale.eps scale.png

josh@cadabra ~/affine
$ convert rotate.eps rotate.png

josh@cadabra ~/affine
$ convert skewx.eps skewx.png

josh@cadabra ~/affine
$ convert translate.eps translate.png

josh@cadabra ~/affine
$ convert skewy.eps skewy.png

업로드 할 준비가 된 PNG를 생성합니다.

$ ls -l *.png
-rw-r--r-- 1 josh None  587 Sep  1 21:16 ident.png
-rw-r--r-- 1 josh None 1431 Sep  1 21:21 rotate.png
-rw-r--r-- 1 josh None  798 Sep  1 21:19 scale.png
-rw-r--r-- 1 josh None 1133 Sep  1 21:22 skewx.png
-rw-r--r-- 1 josh None 1197 Sep  1 21:23 skewy.png
-rw-r--r-- 1 josh None  756 Sep  1 21:23 translate.png


ps2eps로 캡슐화를 생성하는 요점은 템플릿에 eps 헤더를 입력 할 수 없다는 것을 실제로 알지 못합니다. 그것은 명령을 더 깨끗하게 만듭니다 (그리고 사용자는 덜 의존적입니다). 각 파일을 개별적으로 변환하는 대신mogrify -format png *.eps
joojaa

멋있는. 에 대해 몰랐습니다 mogrify. 를 들어 ps2eps일부 자동 경계 박스 정보를 계산 (및 추가). 그 부분을 생략, convert전체 페이지 크기의 이미지를 생성합니다
LUSER을 droog

4

Powerpoint를 사용하여 이러한 다이어그램을 만들고 기본 프리미티브에 익숙해지면 즉시 작동합니다. 회전, 평행 이동 등과 같은 모든 간단한 작업을 지원하며 최근 버전에는 전단 및 3D 변형이 있습니다. 예 :

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

다음은 답변을 위해 작성한 파워 포인트 다이어그램예입니다 .

더 복잡한 다이어그램, 특히 3D의 경우, 때때로 음영이없는 재질로 블렌더를 사용합니다. 귀하의 질문과 관련이 있으면 예를 자세히 설명하고 보여줄 수 있습니다.

같은 외모 jsfiddle은 주변도 인기가있다.


동의합니다 .-- 지금까지 답변에 다이어그램을 사용하지 않았기 때문에 답변이 더 이상 유효하지 않을 수 있습니다. 그러나 나는 그것이 곧 일어날 것으로 기대합니다. 따라서이 답변이 며칠 동안 잘 지내면 괜찮을 것입니다.
ap_

끝난! 내 대답은 지금 유효해야합니다.
ap_

우수한. 내 이전 의견을 삭제합니다.
luser droog

4

당신이 찾고있는 결정적인 도구 상자가 아니라 내가 사용하는 추가 도구 : 3D 그래픽의 경우 Blender가 유용 할 수 있습니다. 특히 Export_SVG 플러그인을 사용하는 경우 http://dl.dropbox.com/u/16486113/Blender/archivos/temp/SVG/export_svg.pyhttp://blenderartists.org/forum/showthread.php 합니까? 282824-SVG 출력 스크립트 )

그러면 Illustrator 또는 Inkscape에서 Blenders 3d 객체를 벡터 그래픽으로 가져올 수 있습니다. 간단한 3D 일러스트레이션 을 만들 수있는 좋은 출발점이됩니다 .

예를 붙여 넣을 수 있습니다. (이 예에서는 많은 색상을 사용하지만 물론 흑백 대신 모두 흑백으로 만들 수 있습니다)

여기에 이미지 설명을 입력하십시오


확실히 당신의 평균 일러스트 레이터와 잉크 스케이프 (대신 일러스트 레이터 일러스트 레이터의)
joojaa

꼭 그리하겠습니다! Tnx!
Ideogram

1

Powerpoint 및 다양한 (고가의) CAD 패키지를 사용합니다. 베 지어 곡선의 제어 다각형 그리기와 같은 특별한 작업을 수행하기 위해 Powerpoint 매크로 (VBA 코드)를 작성했습니다. 그런 다음 표준 Windows 스니핑 도구를 사용하여 스크린 샷을 가져옵니다. 여기 몇 가지 예가 있어요.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

Math.SE의 몇 가지 추가 예

하나



다섯


파워 포인트는 실제로 물건을 고려할 때 상당히 비쌉니다. 괜찮습니다. 모든 드로잉 기술은 당신에게서 나옵니다. 그러나 최소한 tikz, inkscape, blrnder 및 postscript는 파워 포인트보다 훨씬 저렴합니다.
joojaa

나는 나이가 들기 때문에 돈보다 시간이 더 중요합니다. 잉크 스케이프는 좋지만 그림을 만들기 위해 tikz 또는 Postscript 코드를 작성하는 데 시간을 할애 할 방법이 없습니다.
bubba
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.