MCPcopy Create free account
hub / github.com/CruiserOne/Astrolog / XChartWheel

Function XChartWheel

xcharts1.cpp:69–136  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67// are included with -X. Draw the aspects in the middle of chart, too.
68
69void 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--)

Callers 1

DrawChartXFunction · 0.85

Calls 8

HousePlaceInXFunction · 0.85
DrawWheelFunction · 0.85
DrawRingFunction · 0.85
FProcessCommandLineFunction · 0.85
FCreateGridFunction · 0.85
FProperFunction · 0.85
DrawAspectLineFunction · 0.85
DrawSidebarFunction · 0.85

Tested by

no test coverage detected