| 67 | // are included with -X. Draw the aspects in the middle of chart, too. |
| 68 | |
| 69 | void XChartWheel() |
| 70 | { |
| 71 | real xsign[cSign+1], xhouse[cSign+1], xplanet[objMax], symbol[objMax], |
| 72 | ra, rp, rl1, rl2, rz, rg, rh1, rh2, rs, unitx, unity; |
| 73 | int cx, cy, i, j; |
| 74 | |
| 75 | // Set up variables and temporarily automatically decrease the horizontal |
| 76 | // chart size to leave room for the sidebar, if that mode is in effect. |
| 77 | |
| 78 | if (gs.fText && gs.fDoSidebar) |
| 79 | gs.xWin -= xSideT; |
| 80 | cx = gs.xWin/2 - 1; cy = gs.yWin/2 - 1; |
| 81 | unitx = (real)cx; unity = (real)cy; |
| 82 | gi.rAsc = gs.objLeft ? planet[NAbs(gs.objLeft)-1] + |
| 83 | rDegQuad*(gs.objLeft < 0) : chouse[1]; |
| 84 | if (us.fIndian) |
| 85 | gi.rAsc = gs.objLeft ? (gs.objLeft < 0 ? 120.0 : -60.0)-gi.rAsc : 0.0; |
| 86 | if (!gs.fLabelCity) { |
| 87 | ra = 0.48; rp = 0.50; rl1 = 0.52; rl2 = 0.56; rz = 0.0; rg = 0.60; |
| 88 | rh1 = 0.65; rh2 = 0.75; rs = 0.80; |
| 89 | } else { |
| 90 | ra = 0.43; rp = 0.45; rl1 = 0.47; rl2 = 0.51; rz = 0.57; rg = 0.65; |
| 91 | rh1 = 0.70; rh2 = 0.78; rs = 0.82; |
| 92 | } |
| 93 | |
| 94 | // Fill out arrays with the angular degree on the circle of where to |
| 95 | // place each object, cusp, and sign glyph based on the chart mode. |
| 96 | |
| 97 | if (gi.nMode == gWheel) { |
| 98 | for (i = 1; i <= cSign; i++) |
| 99 | xhouse[i] = PZ(chouse[i]); |
| 100 | } else { |
| 101 | gi.rAsc -= chouse[1]; |
| 102 | for (i = 1; i <= cSign; i++) |
| 103 | xhouse[i] = PZ(ZFromS(i)); |
| 104 | } |
| 105 | for (i = 1; i <= cSign; i++) |
| 106 | xsign[i] = PZ(HousePlaceInX(ZFromS(i), 0.0)); |
| 107 | for (i = 0; i <= is.nObj; i++) |
| 108 | xplanet[i] = PZ(HousePlaceInX(planet[i], planetalt[i])); |
| 109 | |
| 110 | // Go draw the outer sign and house rings. |
| 111 | |
| 112 | DrawWheel(xsign, xhouse, cx, cy, unitx, unity, rh1, rh2, rs); |
| 113 | |
| 114 | // For each planet, draw a small dot indicating where it is, and then a |
| 115 | // line from that point to the planet's glyph. |
| 116 | |
| 117 | DrawRing(1, 1, xplanet, symbol, cx, cy, 0.0, 0.0, 0.0, |
| 118 | rp, rl1, rl2, rz, rg, 1.0); |
| 119 | FProcessCommandLine(szWheelX[0]); |
| 120 | |
| 121 | // Draw lines connecting planets which have aspects between them. |
| 122 | |
| 123 | if (!gs.fEquator) { // Don't draw aspects in equator mode. |
| 124 | if (!FCreateGrid(fFalse)) |
| 125 | return; |
| 126 | for (j = is.nObj; j >= 1; j--) |
no test coverage detected