Пример #1
0
 def test_sang(self):
     p1,p2,p3,p4 = vec3(1,1,0),vec3(0,1,0),vec3(0,-1,0),vec3(0,0,1)
     pn = vec3(0,0,1)
     self.assertEqual(dpr.isnear(p1.sang(p2,pn), dpr.PI4),1)
     self.assertEqual(dpr.isnear(p2.sang(p1,pn), dpr.PI4),0)
     self.assertEqual(dpr.isnear(p2.sang(p1,pn),-dpr.PI4),1)
     self.assertEqual(dpr.isnear(p2.sang(p3,pn), dpr.PI ),1)
     self.assertEqual(dpr.isnear(p3.sang(p1,pn),dpr.threePI4),1)
Пример #2
0
 def test_sang(self):
     p1, p2, p3, p4 = vec3(1, 1, 0), vec3(0, 1, 0), vec3(0, -1,
                                                         0), vec3(0, 0, 1)
     pn = vec3(0, 0, 1)
     self.assertEqual(dpr.isnear(p1.sang(p2, pn), dpr.PI4), 1)
     self.assertEqual(dpr.isnear(p2.sang(p1, pn), dpr.PI4), 0)
     self.assertEqual(dpr.isnear(p2.sang(p1, pn), -dpr.PI4), 1)
     self.assertEqual(dpr.isnear(p2.sang(p3, pn), dpr.PI), 1)
     self.assertEqual(dpr.isnear(p3.sang(p1, pn), dpr.threePI4), 1)
Пример #3
0
 def test_dot(self):
     a1,v1 = dpr.PI4,vec3(0,0,1)
     a2,v2 = dpr.PI2,vec3(0,1,0)
     q1,q2 = quat(1,0,0,0).av(a1,v1),quat(1,1,1,0).av(a1,v1)
     q3 = quat(0,1,0,0).av(a2,v2)
     q4 = quat(0,1,0,0).av(0,v1)
     self.assertTrue(dpr.isnear(q1.dot(q2),q1.mag2()))
     self.assertFalse(dpr.isnear(q1.dot(q3),0))
     self.assertTrue(dpr.isnear(q3.dot(q4),q3.w))
Пример #4
0
 def test_pline(self):
     pline = self.origin.pline(self.one, 2)
     d1 = self.origin.d(pline[0])
     d2 = pline[0].d(pline[1])
     d3 = pline[1].d(self.one)
     self.assertEqual(len(pline), 2)
     self.assertTrue(dpr.isnear(d1, d2))
     self.assertTrue(dpr.isnear(d2, d3))
     self.assertTrue(self.origin.mid(self.one), pline[0].mid(pline[1]))
Пример #5
0
 def test_pline(self):
     pline = self.origin.pline(self.one,2)
     d1 = self.origin.d(pline[0])
     d2 = pline[0].d(pline[1])
     d3 = pline[1].d(self.one)
     self.assertEqual(len(pline),2)
     self.assertTrue(dpr.isnear(d1,d2))
     self.assertTrue(dpr.isnear(d2,d3))
     self.assertTrue(self.origin.mid(self.one),pline[0].mid(pline[1]))
Пример #6
0
 def test_adist(self):
     deg10 = gtl.rad(10)
     self.assertEqual(
         gtl.isnear(gtl.adist(deg10 * 2, deg10 * 6), deg10 * 4), 1)
     self.assertEqual(
         gtl.isnear(gtl.adist(deg10 * 6, deg10 * 2), deg10 * 4), 1)
     self.assertEqual(
         gtl.isnear(gtl.adist(deg10 * 6, deg10 * 22), deg10 * 16), 1)
     self.assertEqual(
         gtl.isnear(gtl.adist(deg10 * 6, deg10 * 32), deg10 * 10), 1)
Пример #7
0
 def test_nrm(self):
     q1,q2,q3 = quat(1,0,0,0),quat(1,1,1,0),quat(0,2,5,11)
     self.assertEqual(dpr.isnear(q1.cp().nrm().mag(),1),1)
     self.assertEqual(dpr.isnear(q2.cp().nrm().mag(),1),1)
     self.assertEqual(dpr.isnear(q3.cp().nrm().mag(),1),1)
     self.assertTrue(q1.cp().nrm().mag() == q1.mag())
     self.assertTrue(q1.nrm() is q1)
     self.assertFalse(q2.cp().nrm().mag() == q2.mag())
     self.assertTrue(q2.nrm() is q2)
     self.assertFalse(q3.cp().nrm().mag() == q3.mag())
     self.assertTrue(q3.nrm() is q3)
Пример #8
0
 def test_dot(self):
     v1,v2,v3,v4 = vec3(1,1,0),vec3(-1,1,0),vec3(-1,0,0),vec3(1,1,1)
     self.assertEqual(dpr.isnear(v1.dot(v1), 2),1)
     self.assertEqual(dpr.isnear(v1.dot(v2), 0),1)
     self.assertEqual(dpr.isnear(v1.dot(v3),-1),1)
     self.assertEqual(dpr.isnear(v1.dot(v4), 2),1)
     self.assertEqual(dpr.isnear(v2.dot(v2), 2),1)
     self.assertEqual(dpr.isnear(v2.dot(v3), 1),1)
     self.assertEqual(dpr.isnear(v2.dot(v4), 0),1)
     self.assertEqual(dpr.isnear(v3.dot(v3), 1),1)
     self.assertEqual(dpr.isnear(v3.dot(v4),-1),1)
     self.assertEqual(dpr.isnear(v4.dot(v4), 3),1)
Пример #9
0
 def test_uu(self):
     u1,u2,u3 = vec3(1,0,0),vec3(0,-1,0),vec3(0,0,1)
     q1,q2 = quat(0,0,0,0).uu(u1,u2),quat(0,0,0,0).uu(u1,u3)
     q3,q4 = quat(0,0,0,0).uu(u2,u3),quat(0,0,0,0).uu(u3,u2)
     self.assertTrue(q1.w >  0.1)
     self.assertTrue(dpr.isnear(q1.x,0))
     self.assertTrue(dpr.isnear(q1.y,0))
     self.assertTrue(q1.z < -0.1)
     self.assertTrue(q2.w >  0.1)
     self.assertTrue(dpr.isnear(q2.x,0))
     self.assertTrue(q2.y < -0.1)
     self.assertTrue(dpr.isnear(q2.z,0))
     self.assertTrue(q3 == q4.cnj())
Пример #10
0
 def test_dot(self):
     v1, v2, v3, v4 = vec3(1, 1, 0), vec3(-1, 1, 0), vec3(-1, 0,
                                                          0), vec3(1, 1, 1)
     self.assertEqual(dpr.isnear(v1.dot(v1), 2), 1)
     self.assertEqual(dpr.isnear(v1.dot(v2), 0), 1)
     self.assertEqual(dpr.isnear(v1.dot(v3), -1), 1)
     self.assertEqual(dpr.isnear(v1.dot(v4), 2), 1)
     self.assertEqual(dpr.isnear(v2.dot(v2), 2), 1)
     self.assertEqual(dpr.isnear(v2.dot(v3), 1), 1)
     self.assertEqual(dpr.isnear(v2.dot(v4), 0), 1)
     self.assertEqual(dpr.isnear(v3.dot(v3), 1), 1)
     self.assertEqual(dpr.isnear(v3.dot(v4), -1), 1)
     self.assertEqual(dpr.isnear(v4.dot(v4), 3), 1)
Пример #11
0
 def ea(self, u, v, w):
     up = self.vs[u][1]['p']
     vp = self.vs[v][1]['p']
     wp = self.vs[w][1]['p']
     e1 = vp.tov(up)
     e2 = vp.tov(wp)
     etn1 = e1.cp().nrm()
     etn2 = e2.cp().nrm()
     para = gtl.isnear(etn1.dot(etn2), 1)
     apara = gtl.isnear(etn1.dot(etn2), -1)
     if apara: sa = numpy.pi
     elif para: sa = 0
     else: sa = e1.sang(e2, vec3(0, 0, 1))
     if sa < 0: sa = 2 * numpy.pi + sa
     return sa
Пример #12
0
 def ea(self,u,v,w):
     up = self.vs[u][1]['p']
     vp = self.vs[v][1]['p']
     wp = self.vs[w][1]['p']
     e1 = vp.tov(up)
     e2 = vp.tov(wp)
     etn1 = e1.cp().nrm()
     etn2 = e2.cp().nrm()
     para  = gtl.isnear(etn1.dot(etn2), 1)
     apara = gtl.isnear(etn1.dot(etn2),-1)
     if apara:sa = numpy.pi
     elif para:sa = 0
     else:sa = e1.sang(e2,vec3(0,0,1))
     if sa < 0:sa = 2*numpy.pi+sa
     return sa
Пример #13
0
 def defuv(self,p,n):
     if   n.isnear(vec3(1,0,0)) or n.isnear(vec3(-1,0,0)):u = vec3(p.y,p.z,0)
     elif n.isnear(vec3(0,1,0)) or n.isnear(vec3(0,-1,0)):u = vec3(p.x,p.z,0)
     elif n.isnear(vec3(0,0,1)) or n.isnear(vec3(0,0,-1)):u = vec3(p.x,p.y,0)
     elif gtl.isnear(n.z,0):u = vec3(p.x,p.z,0)
     else:u = vec3(p.x,p.y,0)
     return u
Пример #14
0
def contract(b, ds, epsilon=0.1):
    if not type(ds) is type([]):
        dss = ds
        ds = [1 for x in range(len(b))]
    else:
        dss = 1
    fbnd = []
    pns = []
    for x in range(len(b)):
        p1, p2, p3 = b[x - 2], b[x - 1], b[x]
        w1t = p1.tov(p2).nrm()
        w2t = p2.tov(p3).nrm()
        w1n = vec3(0, 0, 1).crs(w1t).nrm().uscl(ds[x - 2])
        w2n = vec3(0, 0, 1).crs(w2t).nrm().uscl(ds[x - 1])
        s11 = p1.cp().trn(w1n).trn(w1t.cp().uscl(-10000))
        s12 = p2.cp().trn(w1n).trn(w1t.cp().uscl(10000))
        s21 = p2.cp().trn(w2n).trn(w2t.cp().uscl(-10000))
        s22 = p3.cp().trn(w2n).trn(w2t.cp().uscl(10000))

        ip = sintsxyp(s11, s12, s21, s22, ie=False, col=False)

        #if ip is None:
        if ip is None or gtl.isnear(abs(w1t.dot(w2t)), 1):
            pn = p2.cp().trn(w1n)

        else:
            pn = ip.cp()
        pns.append(pn)
    for x in range(len(b)):
        p1, p2, p3 = b[x - 2], b[x - 1], b[x]
        fbnd.append(p2.lerp(pns[x], dss))
        #fbnd.append(p2.lerp(pns[x],random.uniform(0.5*ds,ds)))

        '''#
        print('amen5')
        ax = dtl.plot_axes_xy(500)
        ax = dtl.plot_polygon_xy(fbnd,ax,lw = 2)
        ax = dtl.plot_point_xy_annotate(p1,ax,'p1')
        ax = dtl.plot_point_xy(p1,ax)
        ax = dtl.plot_point_xy_annotate(p2,ax,'p2')
        ax = dtl.plot_point_xy(p2,ax)
        ax = dtl.plot_point_xy_annotate(p3,ax,'p3')
        ax = dtl.plot_point_xy(p3,ax)
        plt.show()
        print('amen6')
        '''#

    fbnd.append(fbnd.pop(0))

    '''#
    print('amen3')
    ax = dtl.plot_axes_xy(500)
    ax = dtl.plot_polygon_xy(fbnd,ax,lw = 2)
    plt.show()
    print('amen4')
    '''#

    #if len(fbnd) > 3:fbnd = pinchb(fbnd,epsilon)
    return fbnd
Пример #15
0
 def test_pring(self):
     p,r,n = vec3(0,0,0),4,8
     ps = p.pring(r,n)
     pm = ps[0].mid(ps[1])
     alpha = numpy.pi*(2.0/n)
     self.assertTrue(len(ps) == n)
     self.assertTrue(p.d(ps[0].mid(ps[1])) == r)
     self.assertTrue(dpr.isnear(ps[0].d(ps[1]),2*r*numpy.tan(alpha/2.0)))
Пример #16
0
def contract(b,ds,epsilon = 0.1):
    if not type(ds) is type([]):
        dss = ds
        ds = [1 for x in range(len(b))]
    else:dss = 1
    fbnd = []
    pns = []
    for x in range(len(b)):
        p1,p2,p3 = b[x-2],b[x-1],b[x]
        w1t = p1.tov(p2).nrm()
        w2t = p2.tov(p3).nrm()
        w1n = vec3(0,0,1).crs(w1t).nrm().uscl(ds[x-2])
        w2n = vec3(0,0,1).crs(w2t).nrm().uscl(ds[x-1])
        s11 = p1.cp().trn(w1n).trn(w1t.cp().uscl(-10000))
        s12 = p2.cp().trn(w1n).trn(w1t.cp().uscl( 10000))
        s21 = p2.cp().trn(w2n).trn(w2t.cp().uscl(-10000))
        s22 = p3.cp().trn(w2n).trn(w2t.cp().uscl( 10000))

        ip = sintsxyp(s11,s12,s21,s22,ie = False,col = False)

        #if ip is None:
        if ip is None or gtl.isnear(abs(w1t.dot(w2t)),1):
            pn = p2.cp().trn(w1n)

        else:pn = ip.cp()
        pns.append(pn)
    for x in range(len(b)):
        p1,p2,p3 = b[x-2],b[x-1],b[x]
        fbnd.append(p2.lerp(pns[x],dss))
        #fbnd.append(p2.lerp(pns[x],random.uniform(0.5*ds,ds)))

        '''#
        print('amen5')
        ax = dtl.plot_axes_xy(500)
        ax = dtl.plot_polygon_xy(fbnd,ax,lw = 2)
        ax = dtl.plot_point_xy_annotate(p1,ax,'p1')
        ax = dtl.plot_point_xy(p1,ax)
        ax = dtl.plot_point_xy_annotate(p2,ax,'p2')
        ax = dtl.plot_point_xy(p2,ax)
        ax = dtl.plot_point_xy_annotate(p3,ax,'p3')
        ax = dtl.plot_point_xy(p3,ax)
        plt.show()
        print('amen6')
        '''#

    fbnd.append(fbnd.pop(0))

    '''#
    print('amen3')
    ax = dtl.plot_axes_xy(500)
    ax = dtl.plot_polygon_xy(fbnd,ax,lw = 2)
    plt.show()
    print('amen4')
    '''#

    #if len(fbnd) > 3:fbnd = pinchb(fbnd,epsilon)
    return fbnd
Пример #17
0
 def test_pring(self):
     p, r, n = vec3(0, 0, 0), 4, 8
     ps = p.pring(r, n)
     pm = ps[0].mid(ps[1])
     alpha = numpy.pi * (2.0 / n)
     self.assertTrue(len(ps) == n)
     self.assertTrue(p.d(ps[0].mid(ps[1])) == r)
     self.assertTrue(
         dpr.isnear(ps[0].d(ps[1]), 2 * r * numpy.tan(alpha / 2.0)))
Пример #18
0
 def test_dxy(self):
     v1,v2,v3,v4 = vec3(1,1,0),vec3(1,1,2),vec3(1,2,1),vec3(1,2,4)
     self.assertTrue(dpr.isnear(v1.dxy(v1),0))
     self.assertTrue(dpr.isnear(v1.dxy(v2),0))
     self.assertTrue(dpr.isnear(v1.dxy(v3),1))
     self.assertTrue(dpr.isnear(v1.dxy(v4),1))
     self.assertTrue(dpr.isnear(v2.dxy(v3),1))
     self.assertTrue(dpr.isnear(v2.dxy(v4),1))
     self.assertTrue(dpr.isnear(v3.dxy(v4),0))
Пример #19
0
 def test_angxy(self):
     v1,v2,v3,v4 = vec3(1,1,2),vec3(-1,1,-1),vec3(-1,0,0),vec3(1,1,1)
     self.assertTrue(dpr.isnear(v1.angxy(v1),0))
     self.assertTrue(dpr.isnear(v1.angxy(v2),dpr.PI2))
     self.assertTrue(dpr.isnear(v2.angxy(v1),dpr.PI2))
     self.assertTrue(dpr.isnear(v1.angxy(v3),3*dpr.PI4))
     self.assertTrue(dpr.isnear(v3.angxy(v1),3*dpr.PI4))
     self.assertTrue(dpr.isnear(v1.angxy(v4),0))
     self.assertTrue(dpr.isnear(v4.angxy(v1),0))
Пример #20
0
def bnrm(b):
    pcnt = len(b)
    pn = vec3(0, 0, 0)
    for px in range(pcnt):
        c1, c2, c3 = b[px - 2], b[px - 1], b[px]
        c1c2 = c1.tov(c2)
        c2c3 = c2.tov(c3)
        #if gtl.isnear(c2c3.mag(),0) or gtl.isnear(c1c2.mag(),0):
        if c2c3.mag() == 0 or c1c2.mag() == 0:
            print('bnrm adjacency error!!', c1c2, c2c3)
            #ax = dtl.plot_axes_xy(200)
            #ax = dtl.plot_polygon_xy(b,ax,lw = 2,col = 'g')
            #ax = dtl.plot_points_xy(b,ax,number = True)
            #plt.show()
            raise ValueError
        cang = c1c2.ang(c2c3)
        if not gtl.isnear(cang, 0) and not gtl.isnear(cang, gtl.PI):
            if cang > -numpy.pi + 0.001 and cang < numpy.pi - 0.001:
                pn.trn(c1c2.crs(c2c3).nrm())
    return pn.nrm()
Пример #21
0
def bnrm(b):
    pcnt = len(b)
    pn = vec3(0,0,0)
    for px in range(pcnt):
        c1,c2,c3  = b[px-2],b[px-1],b[px]
        c1c2 = c1.tov(c2)
        c2c3 = c2.tov(c3)
        #if gtl.isnear(c2c3.mag(),0) or gtl.isnear(c1c2.mag(),0):
        if c2c3.mag() == 0 or c1c2.mag() == 0:
            print('bnrm adjacency error!!',c1c2,c2c3)
            #ax = dtl.plot_axes_xy(200)
            #ax = dtl.plot_polygon_xy(b,ax,lw = 2,col = 'g')
            #ax = dtl.plot_points_xy(b,ax,number = True)
            #plt.show()
            raise ValueError
        cang = c1c2.ang(c2c3)
        if not gtl.isnear(cang,0) and not gtl.isnear(cang,gtl.PI):
            if cang > -numpy.pi+0.001 and cang < numpy.pi-0.001:
                pn.trn(c1c2.crs(c2c3).nrm())
    return pn.nrm()
Пример #22
0
 def test_dxy(self):
     v1, v2, v3, v4 = vec3(1, 1, 0), vec3(1, 1, 2), vec3(1, 2,
                                                         1), vec3(1, 2, 4)
     self.assertTrue(dpr.isnear(v1.dxy(v1), 0))
     self.assertTrue(dpr.isnear(v1.dxy(v2), 0))
     self.assertTrue(dpr.isnear(v1.dxy(v3), 1))
     self.assertTrue(dpr.isnear(v1.dxy(v4), 1))
     self.assertTrue(dpr.isnear(v2.dxy(v3), 1))
     self.assertTrue(dpr.isnear(v2.dxy(v4), 1))
     self.assertTrue(dpr.isnear(v3.dxy(v4), 0))
Пример #23
0
 def test_ang(self):
     v1,v2,v3,v4 = vec3(1,1,0),vec3(-1,1,0),vec3(-1,0,0),vec3(1,1,1)
     self.assertTrue(dpr.isnear(v1.ang(v1),0))
     self.assertTrue(dpr.isnear(v1.ang(v2),dpr.PI2))
     self.assertTrue(dpr.isnear(v2.ang(v1),dpr.PI2))
     self.assertTrue(dpr.isnear(v1.ang(v3),3*dpr.PI4))
     self.assertTrue(dpr.isnear(v3.ang(v1),3*dpr.PI4))
     self.assertTrue(dpr.isnear(v1.ang(v4),numpy.arctan(1.0/math.sqrt(2))))
     self.assertTrue(dpr.isnear(v4.ang(v1),numpy.arctan(1.0/math.sqrt(2))))
     v1.ang(vec3(0,0,0))
Пример #24
0
 def test_angxy(self):
     v1, v2, v3, v4 = vec3(1, 1, 2), vec3(-1, 1,
                                          -1), vec3(-1, 0,
                                                    0), vec3(1, 1, 1)
     self.assertTrue(dpr.isnear(v1.angxy(v1), 0))
     self.assertTrue(dpr.isnear(v1.angxy(v2), dpr.PI2))
     self.assertTrue(dpr.isnear(v2.angxy(v1), dpr.PI2))
     self.assertTrue(dpr.isnear(v1.angxy(v3), 3 * dpr.PI4))
     self.assertTrue(dpr.isnear(v3.angxy(v1), 3 * dpr.PI4))
     self.assertTrue(dpr.isnear(v1.angxy(v4), 0))
     self.assertTrue(dpr.isnear(v4.angxy(v1), 0))
Пример #25
0
 def test_ang(self):
     v1, v2, v3, v4 = vec3(1, 1, 0), vec3(-1, 1, 0), vec3(-1, 0,
                                                          0), vec3(1, 1, 1)
     self.assertTrue(dpr.isnear(v1.ang(v1), 0))
     self.assertTrue(dpr.isnear(v1.ang(v2), dpr.PI2))
     self.assertTrue(dpr.isnear(v2.ang(v1), dpr.PI2))
     self.assertTrue(dpr.isnear(v1.ang(v3), 3 * dpr.PI4))
     self.assertTrue(dpr.isnear(v3.ang(v1), 3 * dpr.PI4))
     self.assertTrue(
         dpr.isnear(v1.ang(v4), numpy.arctan(1.0 / math.sqrt(2))))
     self.assertTrue(
         dpr.isnear(v4.ang(v1), numpy.arctan(1.0 / math.sqrt(2))))
     v1.ang(vec3(0, 0, 0))
Пример #26
0
 def test_av(self):
     a = 3*dpr.PI4
     u1,u2,u3 = vec3(1,0,0),vec3(0,-1,0),vec3(0,0,1)
     q1,q2 = quat(0,0,0,0).av(a,u1),quat(0,0,0,0).av(a,u2)
     q3,q4 = quat(0,0,0,0).av(-a,u3),quat(0,0,0,0).av(-a,u2)
     self.assertTrue(q1.w > 0.1)
     self.assertTrue(q1.x > 0.1)
     self.assertTrue(dpr.isnear(q1.y,0))
     self.assertTrue(dpr.isnear(q1.z,0))
     self.assertTrue(q2.w > 0.1)
     self.assertTrue(dpr.isnear(q2.x,0))
     self.assertTrue(q2.y < -0.1)
     self.assertTrue(dpr.isnear(q2.z,0))
     self.assertTrue(q3.w > 0.1)
     self.assertTrue(dpr.isnear(q3.x,0))
     self.assertTrue(dpr.isnear(q3.y,0))
     self.assertTrue(q3.z < -0.1)
     self.assertFalse(q2 == q4.cp().flp())
     self.assertTrue(q2 == q4.cnj())
Пример #27
0
 def test_deg(self):
     self.assertEqual(gtl.isnear(gtl.deg(gtl.PI),180),1)
Пример #28
0
 def test_mag(self):
     v1, v2, v3 = vec3(1, 0, 0), vec3(1, 1, 1), vec3(2, 5, 11)
     self.assertEqual(dpr.isnear(v1.mag(), 1), 1)
     self.assertEqual(dpr.isnear(v2.mag(), math.sqrt(3)), 1)
     self.assertEqual(dpr.isnear(v3.mag(), math.sqrt(150)), 1)
Пример #29
0
 def comp(self, op, one, res, *args, **kwargs):
     cp = one.cp()
     opres = one.__getattribute__(op)(*args, **kwargs)
     self.assertTrue(dpr.isnear(opres, res))
     self.assertEqual(one, cp)
Пример #30
0
 def comp(self,op,one,res,*args,**kwargs):
     cp = one.cp()
     opres = one.__getattribute__(op)(*args,**kwargs)
     self.assertTrue(dpr.isnear(opres,res))
     self.assertEqual(one,cp)
Пример #31
0
 def test_mag(self):
     v1,v2,v3 = vec3(1,0,0),vec3(1,1,1),vec3(2,5,11)
     self.assertEqual(dpr.isnear(v1.mag(),1),1)
     self.assertEqual(dpr.isnear(v2.mag(),math.sqrt(3)),1)
     self.assertEqual(dpr.isnear(v3.mag(),math.sqrt(150)),1)
Пример #32
0
 def test_mag2(self):
     v1,v2,v3 = vec3(1,0,0),vec3(1,1,1),vec3(2,5,11)
     self.assertEqual(dpr.isnear(v1.mag2(),1),1)
     self.assertEqual(dpr.isnear(v2.mag2(),3),1)
     self.assertEqual(dpr.isnear(v3.mag2(),150),1)
Пример #33
0
 def test_mag2(self):
     v1, v2, v3 = vec3(1, 0, 0), vec3(1, 1, 1), vec3(2, 5, 11)
     self.assertEqual(dpr.isnear(v1.mag2(), 1), 1)
     self.assertEqual(dpr.isnear(v2.mag2(), 3), 1)
     self.assertEqual(dpr.isnear(v3.mag2(), 150), 1)
Пример #34
0
 def test_deg(self):
     self.assertEqual(gtl.isnear(gtl.deg(gtl.PI), 180), 1)
Пример #35
0
 def test_adist(self):
     deg10 = gtl.rad(10)
     self.assertEqual(gtl.isnear(gtl.adist(deg10*2,deg10*6),deg10*4),1)
     self.assertEqual(gtl.isnear(gtl.adist(deg10*6,deg10*2),deg10*4),1)
     self.assertEqual(gtl.isnear(gtl.adist(deg10*6,deg10*22),deg10*16),1)
     self.assertEqual(gtl.isnear(gtl.adist(deg10*6,deg10*32),deg10*10),1)
Пример #36
0
 def test_mag2(self):
     q1,q2,q3 = quat(1,0,0,0),quat(1,1,1,0),quat(0,2,5,11)
     self.assertEqual(dpr.isnear(q1.mag2(),1),1)
     self.assertEqual(dpr.isnear(q2.mag2(),3),1)
     self.assertEqual(dpr.isnear(q3.mag2(),150),1)
Пример #37
0
 def test_rad(self):
     self.assertEqual(gtl.isnear(gtl.rad(180),gtl.PI),1)
Пример #38
0
 def test_mag(self):
     q1,q2,q3 = quat(1,0,0,0),quat(1,1,1,0),quat(0,2,5,11)
     self.assertEqual(dpr.isnear(q1.mag(),1),1)
     self.assertEqual(dpr.isnear(q2.mag(),math.sqrt(3)),1)
     self.assertEqual(dpr.isnear(q3.mag(),math.sqrt(150)),1)
Пример #39
0
 def test_near(self):
     self.assertEqual(gtl.near(0.0001,0),0)
     self.assertEqual(gtl.isnear(gtl.near(0.1,0),0.1),1)
Пример #40
0
 def test_near(self):
     self.assertEqual(gtl.near(0.0001, 0), 0)
     self.assertEqual(gtl.isnear(gtl.near(0.1, 0), 0.1), 1)
Пример #41
0
 def test_rad(self):
     self.assertEqual(gtl.isnear(gtl.rad(180), gtl.PI), 1)