Example #1
0
 def turnFromSun(self, sun, radAway):
     lineToSun = sun.pos - self.pos
     lsDir = lineToSun / np.linalg.norm(lineToSun)
     #self.alignToPos2D(lsDir)
     lsRad = mappingUtils.dirToRadians2D(lsDir)
     lsRad += (np.pi / 6)
     lsRad = mappingUtils.radModPlusMinusPi(lsRad)
     self.alignToRad2D(lsRad)
Example #2
0
 def alignToDir2D(self, newDir):
     self.sailDir = newDir
     self.n = -newDir
     self.rot = mappingUtils.dirToRadians2D(newDir)
     # transverse direction points to sail "right" (not "left"),
     # relative to sail norm and orbit plane
     tRadians = self.rot + (np.pi / 2.0)
     self.t = mappingUtils.radiansToDir2D(tRadians)
Example #3
0
 def alignToPos2D(self, location):
     relPos = location - self.pos
     self.sailDir = relPos / np.linalg.norm(relPos)
     self.n = -self.sailDir
     self.rot = mappingUtils.dirToRadians2D(self.sailDir)
     # transverse direction points to sail "right" (not "left"),
     # relative to sail norm and orbit plane
     tRadians = self.rot + (np.pi / 2.0)
     self.t = mappingUtils.radiansToDir2D(tRadians)
Example #4
0
def testEccOCR(numSteps):
    startRad = -2 * np.pi
    radChange = 1.5 * np.pi
    radChange = radChange / numSteps
    radArray = np.zeros(numSteps)

    rDirArray = np.zeros((numSteps, 2))
    fDirArray = np.zeros((numSteps, 2))

    rAngleArray = np.zeros(numSteps)
    fAngleArray = np.zeros(numSteps)
    dotArray = np.zeros(numSteps)
    coneArray = np.zeros(numSteps)

    for i in range(numSteps):
        rad = startRad + i * radChange
        rDir = mappingUtils.radiansToDir2D(rad)
        fDir = mappingUtils.radiansToDir2D(rad + np.pi / 2)
        rAngle = mappingUtils.dirToRadians2D(rDir) * (180 / np.pi)
        fAngle = mappingUtils.dirToRadians2D(fDir) * (180 / np.pi)
        dP = rDir.dot(fDir)
        cA = coneRadForMaxF2D(rDir, fDir)

        radArray[i] = rad
        rDirArray[i] = rDir
        fDirArray[i] = fDir
        rAngleArray[i] = rAngle
        fAngleArray[i] = fAngle
        dotArray[i] = dP * 100
        coneArray[i] = cA * (180 / np.pi)

    pltR = rDirArray.T
    pltF = fDirArray.T * 1.2
    '''
    plt.plot(rAngleArray)
    plt.plot(fAngleArray)
    plt.plot(dotArray)
    plt.show()
    '''
    plt.plot(coneArray)
    plt.show()
Example #5
0
def coneRadToDir2D(rayDir, coneRad):
    rayRad = mappingUtils.dirToRadians2D(rayDir)
    coneDir = mappingUtils.radiansToDir2D(rayRad + coneRad)
    return coneDir