computer-graphics-homework
ไธๆฌกไนฆ้ขไฝไธ
ๅ 10 ๅ๏ผๅ ฑ 30 ๅ๏ผๆฅๆพไธ็ฏไฝ ็ไธๆ็่ฎก็ฎๆบๅพๅฝขๅญฆๆ็ฎ๏ผๆด็ๅบไปฅไธ้ฎ้ข
- ่ฏฅ่ฎบๆ่งฃๅณ็้ฎ้ขๆฏไปไน๏ผ
- ้็จ็ๆฏไปไนๆนๆณ๏ผ
- ๅพๅฐไบไปไน็ป่ฎบ
ไธไปฝ็ผ็จไฝไธ
30 ๅ๏ผ็ฎๆณไปป้๏ผไธๅฏ่ฐ็จๅทฒๆๅฝๆฐ๏ผ็ป็นๅฝๆฐ้คๅค๏ผ๏ผๆไบคๅฏๆง่ก็จๅบๅๅฎ้ชๆฅๅใ
$ pip install computer-graphics-demo
$ cgdemo --help
Computer graphics algorithms demonstration.
usage: cgdemo [-hVdns] [ [-v] | [-q|-qq] ] [-x <height>] [-y <width>] [-o <out>]
[-c <color>] [-a <args>] [-t <time>] <command>
options:
-h, --help Show this screen.
-V, --version Show version.
-d, --debug Debug this program.
-n, --dry-run Don't show any canvas.
-s, --second Use second algorithm. See section algorithm.
-v, --verbose Output verbosity. (e.g., default arguments)
-q, --quiet Redirect stdout to null. Again for stderr.
-x, --height <height> Height of canvas. [default: 512]
-y, --width <width> Width of canvas. [default: 1024]
-o, --output <out> Save output to a file. See section output.
-c, --color <color> Color of graph. [default: 255,0,0]
-a, --args <args> Arguments. See section argument.
-t, --timeout <time> Auto exit. [default: 30]
commands:
line Draw a line.
circle Draw a circle.
ellipse Draw a ellipse.
fill Fill a region.
bezier Draw a Bezier curve.
b Draw a B-spline.
koch Draw a Koch curve.
mandelbrot Draw a Mandelbrot set.
julia Draw a Julia set.
fern Draw a fern.
reality Draw a scene by hidden surface removal, mirror
reflection, texture, etc.
output: (%d is format string)
*%d*.png
*%d*.jpg
*%d*.bmp
*/video.mp4
*/video.gif
algorithm:
default second
line midpoint bresenham
circle midpoint bresenham
ellipse midpoint
fill scan seed
bezier Bezier
b De_Boor
koch Lindenmayer_system
mandelbrot f(z)=z*z+c
julia f(z)=z*z+c
fern iterated_fuction_system
reality ray_tracing
argument:
line x1,y1,x2,y2,...
circle x0,y0,r
ellipse x0,y0,a,b
fill (scan) x1,y1,x2,y2,x3,y3,...
fill (seed) x_seed,y_seed,x1,y1,x2,y2,x3,y3,...
bezier sample_number,x1,y1,...
b degree,x1,y1,...
koch scale,iteration_max,x0,y0
mandelbrot scale,iteration_max
julia scale,iteration_max
fern scale,iteration_max,x0,y0
reality sample_number,r_aperture
ๅๆฐไฟฎๆน
-
cgdemo -c255,0,0 -a0,0,50,100,100,30 line
ๅฏไปฅ็ปๅบไธๆกไป (0, 0) ๅฐ (50, 100) ๅๅฐ (100, 30) ็็บข่ฒ็ด็บฟใๅ ถไฝ 10 ไธชๅฝไปค็ฑปไผผใ - ๅฏนๆ็ๅฝไปคๆไพไบ 2 ็งไธๅ็ฎๆณ็ๅฎ็ฐ๏ผ็จ
-s
ๅๆข็ฎๆณใ - ๅฏไปฅ็จ
-o
่พๅบๅพ็ๆ่ง้ขใๆณจๆๆฏๆ็ๆไปถๆ ผๅผๅๆไปถๅใ - ้ป่ฎค้ข่ฒๅไธบ็บข่ฒ๏ผๆๅไธไธชๅฝไปค้คๅค๏ผๅ ไธบๆๅคไธช้ข่ฒ๏ผๆนไธบ้ๆบ๏ผใ
- ้ป่ฎคๅๆฐๅฏ้่ฟ
-v
ๆฅ็ใ -
-n
ๅฏไปฅไธๆๅผ็ชๅฃใ
ๆณจๆไบ้กน
็ด็บฟๅ ่ฎธๆ 16 ็งๆ ๅต๏ผๆฒกๆไฝฟ็จ 16 ไธชๆกไปถๅคๆญ๏ผ้ฃๆ ท็ๅฎ็ฐๅคช่ไบ๏ผ
ๆคญๅๅ
่ฎธๆ
้ช่ฑๆฒ็บฟ็ๅๆฐไธญ่ฟญไปฃๆฌกๆฐๅคชๅคงไผๅ ไธบ Out of Memory ่ขซ kill ใ
ไธบไบไฟ่ฏ่ทจๅนณๅฐๆงๅๅผๅๆ็ไฝฟ็จ python ๅผๅใๆไปฅ็ฌฌไธๆฌก่ฟ่ก็ญๅพ ๆถ้ดไผ้ฟไธ็น๏ผ็ฌฌ ไบๆฌกไนๅไผๅ ไธบ็ๆๅญ่็ ๅฟซไธ็นใ
ไปฃ็ ็ปๆ
$ exa -T
.
โโโ 1.md // ๅ 3 ๆฌกไฝไธ็ markdown ๆไปถ
โโโ 2.md
โโโ 3.md
โโโ docs
โ โโโ api.rst
โ โโโ conf.py
โ โโโ index.rst
โ โโโ make.bat
โ โโโ Makefile
โโโ images // ๆฌๆไธญๅบ็ฐ็ๆๆๅพ็
โ โโโ 16line.png
โ โโโ b.png
โ โโโ bezier.png
โ โโโ circle.png
โ โโโ ellipse.png
โ โโโ fern.png
โ โโโ fill.png
โ โโโ julia.png
โ โโโ koch.png
โ โโโ line.png
โ โโโ mandelbrot.png
โ โโโ reality.png
โโโ LICENSE
โโโ pyproject.toml
โโโ README.md // ๆฌๆ
โโโ requirements.txt
โโโ scripts
โ โโโ generate_images.sh // ่ฟ่กๆญค็จๅบๅฏไปฅ็ๆๆฌๆไธญๅบ็ฐ็ๆๆๅพ็
โโโ setup.py
โโโ src // ๆๆ็ฎๆณ็ๆผ็คบ๏ผๅๅญไธ็ฎๆณ็ๅฏนๅบๅ
ณ็ณป่ง `cgdemo --help` ็่พๅบ
โโโ computer_graphics_demo
โโโ __init__.py
โโโ __main__.py // ไธป็จๅบ
โโโ b.py
โโโ bezier.py
โโโ circle
โ โโโ __init__.py
โ โโโ bresenham.py
โ โโโ midpoint.py
โโโ ellipse.py
โโโ fern.py
โโโ fill
โ โโโ __init__.py
โ โโโ scan.py
โ โโโ seed.py
โโโ julia.py
โโโ koch.py
โโโ line
โ โโโ __init__.py
โ โโโ bresenham.py
โ โโโ midpoint.py
โโโ mandelbrot.py
โโโ reality.py
ไธป็จๅบๅช่ด่ดฃๅฝไปค่ก้้กน็่ฏปๅๅ GUI ็ชๅฃ็ๅๅงๅ๏ผๅฎ้
ไผ่ฐ็จ utils
ไธๅไธชๅญๆจก
ๅ็ paint()
{.py} ๅฎๆ็ปๅถใ paint()
{.py} ๅฎ็ฐ็ฎๆณ๏ผๆ็ปไผ่ฐ็จ
setpixel()
{.py}, set8pixel()
{.py}, set4pixel()
{.py} ็ญๅฝๆฐใ
ๅ่็ๆฅๆบๅๅจๆณจ้ไธญๆ ๅบ๏ผไพๅฆ wikipedia ๅๆไบๅๅฎขไธญ C ๆ python ็ไปฃ็ ใ
ไปฅไธ็ๆ็ๅพๅฝขๅๆฏๅจ้ป่ฎคๅๆฐไธ็ๆ็๏ผๆฏๅฆ cgdemo line
{.sh} ๅฆๆๆณไฟฎๆนๅๆฐ็
ๅๆฐไฟฎๆน๏ผไฟฎๆนๆไบๅๆฐ้่ฆๆณจๆ๏ผๆฏๅฆ้ช่ฑๆฒ็บฟ็ๅๆฐไธญ่ฟญไปฃๆฌกๆฐไธ่ฆๅคช
ๅคง็ญ็ญใ
ๅพๅ ็็ๆ
ๆ ทๆกๆฒ็บฟ็็ๆ
ๅๅฝขๅพๅฝข็็ๆ
็ๅฎๆๅพๅฝข็็ๆ
ๆพ็คบไธไธชๅ ทๆ็ๅฎๆๅบๆฏ็ๅพๅฝข๏ผๅ ไฝ้ ๅ่ชๅฎไน๏ผๅ ๆฌๆถ้ใ้้ขๅๅฐใ็บน็ๆๆ
ๆๆซ่่ฏ
40 ๅ