API¶
computer_graphics_demo/__init__.py
.
computer_graphics_demo¶
Common functions.
- computer_graphics_demo.utils.init()¶
Init.
- computer_graphics_demo.utils.setpixel(x: int, y: int, R: int, G: int, B: int)¶
Set Pixel.
- 参数
x (int) –
y (int) –
R (int) –
G (int) –
B (int) –
computer_graphics_demo.line¶
Draw a line.
- computer_graphics_demo.line.polygon(R: int, G: int, B: int, *argv: int, isclose: bool = False, line: Optional[Callable[[int, int, int, int, int, int, int], None]] = None) None ¶
polygon.
- 参数
R (int) –
G (int) –
B (int) –
argv (int) –
isclose (bool) –
line (Optional[Callable[[int, int, int, int, int, int, int], None]]) –
- 返回类型
None
computer_graphics_demo.line.bresenham¶
Bresenham algorithm.
- computer_graphics_demo.line.bresenham.line(R: int, G: int, B: int, x1: int, y1: int, x2: int, y2: int)¶
line.
- 参数
R (int) –
G (int) –
B (int) –
x1 (int) –
y1 (int) –
x2 (int) –
y2 (int) –
- computer_graphics_demo.line.bresenham.paint(R: int, G: int, B: int, *argv: int) None ¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
argv (int) –
- 返回类型
None
computer_graphics_demo.line.midpoint¶
Midpoint algorithm.
- computer_graphics_demo.line.midpoint.line(R: int, G: int, B: int, x1: int, y1: int, x2: int, y2: int)¶
line.
- 参数
R (int) –
G (int) –
B (int) –
x1 (int) –
y1 (int) –
x2 (int) –
y2 (int) –
- computer_graphics_demo.line.midpoint.paint(R: int, G: int, B: int, *argv: int) None ¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
argv (int) –
- 返回类型
None
computer_graphics_demo.circle¶
Draw a circle.
- computer_graphics_demo.circle.set4pixel(x0, y0, x, y, R, G, B)¶
set4pixel.
- 参数
x0 –
y0 –
x –
y –
R –
G –
B –
- computer_graphics_demo.circle.set8pixel(x0, y0, x, y, R, G, B)¶
set8pixel.
- 参数
x0 –
y0 –
x –
y –
R –
G –
B –
computer_graphics_demo.circle.bresenham¶
Bresenham algorithm.
- computer_graphics_demo.circle.bresenham.circle(R: int, G: int, B: int, x0: int, y0: int, r: int)¶
circle.
- 参数
R (int) –
G (int) –
B (int) –
x0 (int) –
y0 (int) –
r (int) –
- computer_graphics_demo.circle.bresenham.paint(R: int, G: int, B: int, x0: int, y0: int, r: int)¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
x0 (int) –
y0 (int) –
r (int) –
computer_graphics_demo.circle.midpoint¶
Midpoint algorithm.
- computer_graphics_demo.circle.midpoint.circle(R: int, G: int, B: int, x0: int, y0: int, r: int)¶
circle.
- 参数
R (int) –
G (int) –
B (int) –
x0 (int) –
y0 (int) –
r (int) –
- computer_graphics_demo.circle.midpoint.paint(R: int, G: int, B: int, x0: int, y0: int, r: int)¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
x0 (int) –
y0 (int) –
r (int) –
computer_graphics_demo.ellipse¶
Draw a ellipse.
- computer_graphics_demo.ellipse.ellipse(R: int, G: int, B: int, x0: int, y0: int, a0: int, b0: int)¶
ellipse.
- 参数
R (int) –
G (int) –
B (int) –
x0 (int) –
y0 (int) –
a (int) –
b (int) –
- computer_graphics_demo.ellipse.paint(R: int, G: int, B: int, x0: int, y0: int, a: int, b: int)¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
x0 (int) –
y0 (int) –
a (int) –
b (int) –
computer_graphics_demo.fill¶
Fill a region.
- computer_graphics_demo.fill.cycle_shift(xs, number: int)¶
cycle_shift.
- 参数
xs –
number (int) –
computer_graphics_demo.fill.scan¶
Scan line algorithm.
- computer_graphics_demo.fill.scan.paint(R: int, G: int, B: int, *argv: int)¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
argv (int) –
computer_graphics_demo.fill.seed¶
Seed point algorithm.
- computer_graphics_demo.fill.seed.paint(R: int, G: int, B: int, x_seed: int, y_seed: int, *argv: int)¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
x_seed (int) –
y_seed (int) –
argv (int) –
computer_graphics_demo.bezier¶
Draw a Bezier curve.
- computer_graphics_demo.bezier.basis(i: int, degree: int, u: float) float ¶
basis.
- 参数
i (int) –
degree (int) –
u (float) –
- 返回类型
float
- computer_graphics_demo.bezier.paint(R: int, G: int, B: int, sample_number: int, *argv: int) None ¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
sample_number (int) –
argv (int) –
- 返回类型
None
computer_graphics_demo.b¶
Draw a B-spline.
- computer_graphics_demo.b.b_basis(i: int, degree: int, u: int, nodes: List[int]) float ¶
b_basis.
- 参数
i (int) –
degree (int) –
u (int) –
nodes (List[int]) –
- 返回类型
float
- computer_graphics_demo.b.paint(R: int, G: int, B: int, degree: int, *argv: int) None ¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
degree (int) –
argv (int) –
- 返回类型
None
computer_graphics_demo.koch¶
Draw a Koch curve
- computer_graphics_demo.koch.paint(R: int, G: int, B: int, scale: int, iteration_max: int, x0: int, y0: int)¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
scale (int) –
iteration_max (int) –
x0 (int) –
y0 (int) –
- computer_graphics_demo.koch.rule(char: str) str ¶
rule.
- 参数
char (str) –
- 返回类型
str
computer_graphics_demo.mandelbrot¶
Draw a Mandelbrot set
- computer_graphics_demo.mandelbrot.complex_sqr(z) Vector ¶
complex_sqr.
- 参数
z –
- computer_graphics_demo.mandelbrot.paint(R: int, G: int, B: int, scale: float, iteration_max: int)¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
scale (float) –
iteration_max (int) –
computer_graphics_demo.julia¶
Draw a Julia set.
- computer_graphics_demo.julia.complex_sqr(z) Vector ¶
complex_sqr.
- 参数
z –
- computer_graphics_demo.julia.paint(R: int, G: int, B: int, scale: float, iteration_max: int)¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
scale (float) –
iteration_max (int) –
computer_graphics_demo.fern¶
Draw a fern.
- computer_graphics_demo.fern.fern(probability: List[float], eqs: List[ndarray], init: List[float], iteration_max: int) Tuple[List[float], List[float]] ¶
fern.
- 参数
probability (List[float]) –
eqs (List[np.ndarray]) –
init (List[float]) –
iteration_max (int) –
- 返回类型
Tuple[List[float], List[float]]
- computer_graphics_demo.fern.paint(R: int, G: int, B: int, scale: int, iteration_max: int, x0: int, y0: int) None ¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
scale (int) –
iteration_max (int) –
x0 (int) –
y0 (int) –
- 返回类型
None
computer_graphics_demo.reality¶
Draw a scene by hidden surface removal, mirror reflection, texture, etc.
- computer_graphics_demo.reality.color(start, dir)¶
color.
- 参数
start –
dir –
- computer_graphics_demo.reality.hit_sphere(center, radius, rayo, rayd, mint, maxt)¶
hit_sphere.
- 参数
center –
radius –
rayo –
rayd –
mint –
maxt –
- computer_graphics_demo.reality.hit_spheres(rayo, rayd, mint, maxt)¶
hit_spheres.
- 参数
rayo –
rayd –
mint –
maxt –
- computer_graphics_demo.reality.init()¶
init.
- computer_graphics_demo.reality.normalize(n)¶
normalize.
- 参数
n –
- computer_graphics_demo.reality.paint(R: int, G: int, B: int, sample_number: int, r_aperture: float)¶
paint.
- 参数
R (int) –
G (int) –
B (int) –
sample_number (int) –
r_aperture (float) –
- computer_graphics_demo.reality.random_in_unit_sphere()¶
random_in_unit_sphere.
- computer_graphics_demo.reality.reflect(v, n)¶
reflect.
https://en.wikipedia.org/wiki/Specular_reflection
- 参数
v –
n –
- computer_graphics_demo.reality.refract(v, n, ni_over_nt)¶
refract.
https://en.wikipedia.org/wiki/Snell%27s_law
- 参数
v –
n –
ni_over_nt –
- computer_graphics_demo.reality.schlick(cosine, ni_over_nt)¶
schlick.
https://en.wikipedia.org/wiki/Schlick%27s_approximation
- 参数
cosine –
ref_idx –
- computer_graphics_demo.reality.unit_vector(v)¶
unit_vector.
- 参数
v –