コード例 #1
0
    triangle_area(pD, pB, pC) + triangle_area(pA, pC, pD))
pG = (triangle_area(pA, pB, pC) * pD + triangle_area(pC, pB, pD) * pA) / (
    triangle_area(pA, pB, pC) + triangle_area(pC, pB, pD))
pM = (triangle_area(pD, pB, pC) * pA + triangle_area(pA, pB, pD) * pC) / (
    triangle_area(pD, pB, pC) + triangle_area(pA, pB, pD))

#lineDE, = ax2.plot(*zip(pD,pE),linewidth = 1,color='b',linestyle=':')
#lineBF, = ax2.plot(*zip(pB,pF),linewidth = 1,color='b',linestyle=':')
#lineDH, = ax2.plot(*zip(pD,pH),linewidth = 1,color='b',linestyle=':')
#lineBG, = ax2.plot(*zip(pB,pG),linewidth = 1,color='b',linestyle=':')

#lineCN, = ax2.plot(*zip(pC,pN),linewidth = 1,color='b',linestyle=':')
#lineAN, = ax2.plot(*zip(pA,pN),linewidth = 1,color='b',linestyle=':')
#lineAR, = ax2.plot(*zip(pA,pR),linewidth = 1,color='b')

pJ = return_intersection_under_Ceva_Theorem(pB, pD, pC, pF, pE)
pK = return_intersection_under_Ceva_Theorem(pD, pB, pA, pH, pG)
pL = return_intersection_under_Ceva_Theorem(pC, pA, pD, pG, pF)
pI = return_intersection_under_Ceva_Theorem(pA, pC, pB, pE, pH)
pO = return_intersection_under_Ceva_Theorem(pC, pA, pN, pK, pJ)

lineCK, = ax2.plot(*zip(pC, pK), linewidth=1, color='b', linestyle=':')
lineAJ, = ax2.plot(*zip(pA, pJ), linewidth=1, color='b', linestyle=':')
lineBL, = ax2.plot(*zip(pB, pL), linewidth=1, color='b', linestyle=':')
lineDI, = ax2.plot(*zip(pD, pI), linewidth=1, color='b', linestyle=':')

lineMN, = ax2.plot(*zip(pM, pN), linewidth=1, color='b')
lineGE, = ax2.plot(*zip(pG, pE), linewidth=1, color='b')
lineHF, = ax2.plot(*zip(pH, pF), linewidth=1, color='b')

pO_on_BCD = project_a_point_to_a_plane(pO, pB - pD, pC - pD, pJ)
コード例 #2
0
linez.set_color('k')
ax2.text(0,0,6, r'$z_s$', fontsize=18,verticalalignment='bottom', horizontalalignment='left')
'''
pA = np.array([0, 0, 0])
pB = np.array([3, 0, 0])
pC = np.array([2, 2.5, 0])
pD = (0.6 * pB + 0.4 * pC)
pE = (0.6 * pA + 0.4 * pC)

lineAC, = ax2.plot(*zip(pA, pC), linewidth=2, color='b')
lineBA, = ax2.plot(*zip(pB, pA), linewidth=2, color='b')
lineBC, = ax2.plot(*zip(pB, pC), linewidth=2, color='b')
lineAD, = ax2.plot(*zip(pA, pD), linewidth=2, color='b')
lineBE, = ax2.plot(*zip(pB, pE), linewidth=2, color='b')

pO = return_intersection_under_Ceva_Theorem(pA, pB, pC, pD, pE)
pF = return_third_point_on_a_triagle_under_Ceva_Theorem(pA, pB, pC, pD, pE)

lineCF, = ax2.plot(*zip(pC, pF), linewidth=1, color='b', linestyle=':')

ax2.text(*pA,
         s=r'$A$',
         fontsize=12,
         verticalalignment='bottom',
         horizontalalignment='right',
         linespacing=12)
ax2.text(*pB,
         s=r'$B$',
         fontsize=12,
         verticalalignment='bottom',
         horizontalalignment='left',
コード例 #3
0
pH = (pA + pB) / 2
pG = (0.4 * pA + 0.6 * pD)

lineDE, = ax2.plot(*zip(pD, pE), linewidth=1, color='b')
lineBF, = ax2.plot(*zip(pB, pF), linewidth=1, color='b')
lineDH, = ax2.plot(*zip(pD, pH), linewidth=1, color='b')
lineBG, = ax2.plot(*zip(pB, pG), linewidth=1, color='b')

pN = return_third_point_on_a_triagle_under_Ceva_Theorem(pB, pD, pC, pF, pE)
pNp = return_third_point_on_a_triagle_under_Ceva_Theorem(pD, pB, pA, pH, pG)

lineCN, = ax2.plot(*zip(pC, pN), linewidth=1, color='b')
lineANp, = ax2.plot(*zip(pA, pNp), linewidth=1, color='b')
#lineAR, = ax2.plot(*zip(pA,pR),linewidth = 1,color='b')

pJ = return_intersection_under_Ceva_Theorem(pB, pD, pC, pF, pE)
pK = return_intersection_under_Ceva_Theorem(pD, pB, pA, pH, pG)

lineCK, = ax2.plot(*zip(pC, pK), linewidth=1, color='b')
lineAJ, = ax2.plot(*zip(pA, pJ), linewidth=1, color='b')

ax2.text(*pA,
         s=r'$A$',
         fontsize=12,
         verticalalignment='bottom',
         horizontalalignment='right')
ax2.text(*pB,
         s=r'$B$',
         fontsize=12,
         verticalalignment='bottom',
         horizontalalignment='right')
コード例 #4
0
pP = pC - pB + pQ

pD = (0.4 * pE + 0.6 * pC)
pH = (0.2 * pG + 0.8 * pC)

lineAP, = ax2.plot(*zip(pA, pP), linewidth=2, color='b')
lineBG, = ax2.plot(*zip(pB, pG), linewidth=2, color='b')
lineBE, = ax2.plot(*zip(pB, pE), linewidth=2, color='b')
lineCG, = ax2.plot(*zip(pC, pG), linewidth=2, color='b')
lineCE, = ax2.plot(*zip(pC, pE), linewidth=2, color='b')
lineQG, = ax2.plot(*zip(pQ, pG), linewidth=2, color='b')
lineQE, = ax2.plot(*zip(pQ, pE), linewidth=2, color='b')
linePG, = ax2.plot(*zip(pP, pG), linewidth=2, color='b')
linePE, = ax2.plot(*zip(pP, pE), linewidth=2, color='b')

pI = return_intersection_under_Ceva_Theorem(pA, pE, pC, pD, pB)
pK = return_intersection_under_Ceva_Theorem(pA, pG, pC, pH, pB)

lineGI, = ax2.plot(*zip(pG, pI), linewidth=1, color='b', linestyle=':')
lineEK, = ax2.plot(*zip(pE, pK), linewidth=1, color='b', linestyle=':')
lineGD, = ax2.plot(*zip(pG, pD), linewidth=1, color='b', linestyle=':')
lineHE, = ax2.plot(*zip(pH, pE), linewidth=1, color='b', linestyle=':')

pJ = return_intersection_under_Ceva_Theorem(pG, pE, pB, pI, pK)
pL = return_intersection_under_Ceva_Theorem(pG, pE, pC, pD, pH)
pQ1 = return_Menelaus_third_outer_point_2nd(pQ, pB, pE, pI, pA)
pP1 = return_Menelaus_third_outer_point_2nd(pP, pB, pE, pI, pA)
pF = return_third_point_on_a_triagle_under_Ceva_Theorem(pG, pE, pB, pI, pK)
pQ2 = return_third_point_on_a_triagle_under_Ceva_Theorem(pQ, pG, pE, pF, pQ1)
pP2 = return_third_point_on_a_triagle_under_Ceva_Theorem(pP, pG, pE, pF, pQ1)
pPc = return_intersection_under_Ceva_Theorem(pP, pG, pE, pF, pP1)
コード例 #5
0
#### The plotting of a vector-based graphics using the above points location information.
fig2 = pyplot.figure(2, figsize=(4, 4), dpi=100)
ax2 = p3.Axes3D(fig2)
ax2.view_init(elev=15, azim=-95)
ax2.set_color_cycle('b')

pA = np.array([2.5, -1, 3])
pB = np.array([4, 0, 0])
pD = np.array([0, 0, 0])
pC = np.array([1, -2.5, 0])
pN = (0.6 * pA + 0.4 * pB)
pH = (0.7 * pB + 0.3 * pD)
pI = (0.45 * pB + 0.55 * pC)

pE = return_intersection_under_Ceva_Theorem(pA, pD, pB, pH, pN)
pF = return_intersection_under_Ceva_Theorem(pA, pC, pB, pI, pN)
pJ = return_third_point_on_a_triagle_under_Ceva_Theorem(pD, pC, pN, pF, pE)
pG = return_Menelaus_third_outer_point(pD, pC, pN, pF, pE)

lineAC, = ax2.plot(*zip(pA, pC), linewidth=1, color='b')
lineGE, = ax2.plot(*zip(pG, pE), linewidth=1, color='b')
lineCG, = ax2.plot(*zip(pC, pG), linewidth=1, color='b')
lineAD, = ax2.plot(*zip(pA, pD), linewidth=1, color='b')
lineAH, = ax2.plot(*zip(pA, pH), linewidth=1, color='b')
lineAI, = ax2.plot(*zip(pA, pI), linewidth=1, color='b')
lineAB, = ax2.plot(*zip(pA, pB), linewidth=1, color='b')
lineBC, = ax2.plot(*zip(pC, pB), linewidth=1, color='b')
lineDB, = ax2.plot(*zip(pD, pB), linewidth=1, color='b')
lineNC, = ax2.plot(*zip(pN, pC), linewidth=1, color='b')
lineDC, = ax2.plot(*zip(pD, pC), linewidth=1, color='b')
コード例 #6
0
circleHE = circle_full(np.cross(pB-pC,pB-pA), pH-centerHE, r_cirHE, 30) + centerHE
ax2.plot(*np.transpose(circleHE),linewidth=1,linestyle=':',color='r')
lineAC, = ax2.plot(*zip(pA,pC),linewidth = 2,color='b')

# graph step 4
ax2.text(*pM, s = r"$M$", fontsize=12,verticalalignment='top', horizontalalignment='right')
incenterACD,inradiusACD,normvecACD, pp, ppp, pppp= incircle3D(pA,pC,pD)
incircleACD = circle_full(incenterACD-pO, pF-incenterACD, np.linalg.norm(pF-incenterACD), 30) + incenterACD
ax2.plot(*np.transpose(incircleACD),linewidth=1,linestyle=':')
#ax2.text(*incenterACD, s = r"$I_{ACD}$", fontsize=12,verticalalignment='bottom', horizontalalignment='right')
#ax2.text(*centerHE, s = r"$I_{ABC}$", fontsize=12,verticalalignment='top', horizontalalignment='left')
#lineIacdO, = ax2.plot(*zip(pO,incenterACD),linewidth = 1,color='b',linestyle=':')
#lineIabcO, = ax2.plot(*zip(pO,centerHE),linewidth = 1,color='b',linestyle=':')

# return all ceva points and connect their lines and plot Gergonne point
pK = return_intersection_under_Ceva_Theorem(pA,pD,pB,pN,pH)
pI = return_intersection_under_Ceva_Theorem(pA,pB,pC,pE,pM)
pL = return_intersection_under_Ceva_Theorem(pA,pD,pC,pF,pM)
pJ = return_intersection_under_Ceva_Theorem(pB,pD,pC,pF,pE)
pGP = return_intersection_under_Ceva_Theorem(pB,pA,pF,pL,pJ)

ax2.text(*pK, s = r'$K$',   fontsize=10,verticalalignment='top', horizontalalignment='right')
ax2.text(*pI, s = r'$I$',   fontsize=10,verticalalignment='top', horizontalalignment='right')
ax2.text(*pL, s = r'$L$',   fontsize=10,verticalalignment='top', horizontalalignment='right')
ax2.text(*pJ, s = r'$J$',   fontsize=10,verticalalignment='top', horizontalalignment='right')
ax2.text(*pGP, s = r'$GP$', fontsize=10,verticalalignment='top', horizontalalignment='right')

ax2.scatter3D(*zip(pE,pF,pG,pH,pN,pM),c = ['blue'])
ax2.scatter3D(*zip(pO),c = ['red'])
ax2.scatter3D(*zip(pK,pI,pL,pJ),c = ['green'])
ax2.scatter3D(*zip(pGP),c = ['green'],s = [18])