I know that I can use online calculators or tables to determine spoke length. I also know that there are some pre-derived formulas for spoke length that I could use to calculate the spoke lengths or to make my own spreadsheet or calculator. I'm not interested in any of the above things; I would like some help on how to derive a formula for spoke length, given common lacing patterns such as 2-cross, 3-cross, etc.
My first approach would be to use length of a vector. The length of a vector in a Cartesian coordinate system is easily calculated by the formula
Length = SquareRoot(x^2 + y^2 + z^2)
where x, y, and z are projections of the vector along the x, y, and z axes.
Considering a coordinate system where Z-axis is equal to the axis of the hub, and Y is a radial line between the axle and the rim, then two of these projections are easy to find: I can determine projection in Z easily…it’s just the flange distance from the plane of the rim. I can determine the projection in Y and X using elementary trigonometry, IF I knew the angle that the spoke makes with respect to a radial spoke. Or stated another way, if I knew the angular displacement of the hub with respect to the rim.
The angle that a spoke makes with the rim/hub is a function of the lacing pattern. I am interested in the common lacing patterns of 1-cross, 2-cross, and 3-cross. But the missing link for me is, how can I use the crossing pattern to derive the spoke angle? Once the spoke angle is known, then deriving a formula for the length is simple using the vector length formula. The angle itself may be discovered by trig if we know the missing link.
Of course we know the flange hole circle diameter and the rim diameter. What I need is to know the angular relationship between the hub and the rim. This relationship is constrained to certain values by the spoke lengths and equilibrium requirement, but how to find it?
Update: I found some more information on Wikipedia article for "spoke". (https://en.wikipedia.org/wiki/Spoke). The article identifies the spoke angle as "a" and defines "a" as follows (for a 3-cross, 36-spoke wheel):
a = 360° k/m, for example 360°*3/18 = 60°.
At this point, I accept that this formula gives the spoke angle, but I don't yet understand the logic behind it. The stated justification is given as follows:
For each spoke crossed, the hub is rotated with reference to the rim one "angle between adjacent flange holes". Thus, multiplying the "angle between adjacent flange holes" by [crossing number] k gives the angle a.
It is not self-evident that each crossing causes the hub to be rotated by one "angle between adjacent flange holes".