In [1]:
import geomalgo as ga
%load_ext Cython
%load_ext wurlitzer
%pylab inline
In [2]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D u
u.x = 1
u.y = 2
printf('u: (%.1f, %.1f)\n', u.x, u.y)
In [5]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D* u
u = ga.new_vector2d()
u.x = 1
u.y = 2
printf('u: (%.1f, %.1f)\n', u.x, u.y)
ga.del_vector2d(u)
In [6]:
u = ga.Vector2D(1, 2)
print(u)
In [8]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.Vector2D u
ga.CVector2D* ptr
u = ga.Vector2D(1, 2)
ptr = u.cvector2d
printf("(%.1f, %.1f)\n", ptr.x, ptr.y)
In [9]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D u
u.x, u.y = 1, 2
printf("u: (%.1f, %.1f)\n", u.x, u.y)
u.x, u.y = 4, -5
printf("u: (%.1f, %.1f)\n", u.x, u.y)
In [10]:
u = ga.Vector2D(1, 2)
print(u)
u.x, u.y = 4, -5
print(u)
In [16]:
AB = ga.Vector2D(0, 1)
BC = ga.Vector2D(1, 1)
AC = AB + BC
print(AC)
In [18]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D AB, BC, AC
AB.x, AB.y = 0, 1
BC.x, BC.y = 1, 1
ga.add_vector2d(&AC, &AB, &BC)
printf("(%.1f, %.1f)\n", AC.x, AC.y)
In [21]:
AC = ga.Vector2D(1, 2)
BC = ga.Vector2D(1, 1)
AB = AC - BC
print(AB)
In [22]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D AB, BC, AC
AC.x, AC.y = 1, 2
BC.x, BC.y = 1, 1
ga.subtract_vector2d(&AB, &AC, &BC)
printf("(%.1f, %.1f)\n", AB.x, AB.y)
In [24]:
u = ga.Vector2D(1, 2)
t = u*2
print(t)
In [26]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D u, t
u.x, u.y = 1, 2
ga.vector2d_times_scalar(&t, 2., &u)
printf("(%.1f, %.1f)", t.x, t.y)
In [29]:
u = ga.Vector2D(1, 2)
v = ga.Vector2D(3, 4)
u.dot(v)
Out[29]:
In [32]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D u, v
u.x, u.y = 1, 2
v.x, v.y = 3, 4
printf("%.1f\n", ga.dot_product2d(&u, &v))
In [33]:
u = ga.Vector2D(1, 2)
v = ga.Vector2D(3, 4)
u^v
Out[33]:
In [34]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D u, v
u.x, u.y = 1, 2
v.x, v.y = 3, 4
printf("%.1f\n", ga.cross_product2d(&u, &v))
In [11]:
u = ga.Vector2D(3, 4)
u.norm
Out[11]:
In [13]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D u
u.x, u.y = 3, 4
printf("%.1f\n", ga.compute_norm2d(&u))
In [14]:
u = ga.Vector2D(3, 4)
u.normalize()
print(u)
print(u.norm)
In [15]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D u
u.x, u.y = 3, 4
ga.normalize_vector2d(&u)
printf("(%.1f, %.1f)\n", u.x, u.y)
printf("%.1f\n", ga.compute_norm2d(&u))
In [42]:
u = ga.Vector2D(0, 1)
print(u.normal)
In [48]:
%%cython
from libc.stdio cimport printf
cimport geomalgo as ga
cdef:
ga.CVector2D u, n
double norm
u.x, u.y = 0, 1
norm = ga.compute_norm2d(&u)
ga.compute_normal2d(&n, &u, norm)
printf("(%.1f, %.1f)\n", n.x, n.y)
In [ ]: