| 5045 | } |
| 5046 | |
| 5047 | GMT_LOCAL double gmtplot_smallcircle_az (struct GMT_CTRL *GMT, double P[], struct GMT_SYMBOL *S) { |
| 5048 | /* Compute the azimuth at P along small circle given pole */ |
| 5049 | double R[3][3], X[3], xlon1, xlat1, xlon2, xlat2, az; |
| 5050 | /* Make rotation matrix for a +0.005 degree rotation */ |
| 5051 | gmt_make_rot_matrix (GMT, S->v.pole[GMT_X], S->v.pole[GMT_Y], -0.005, R); |
| 5052 | gmt_matrix_vect_mult (GMT, 3U, R, P, X); /* Get point really close to P along small circle */ |
| 5053 | gmt_cart_to_geo (GMT, &xlat1, &xlon1, X, true); /* Get coordinates of X */ |
| 5054 | gmt_make_rot_matrix (GMT, S->v.pole[GMT_X], S->v.pole[GMT_Y], +0.005, R); |
| 5055 | gmt_matrix_vect_mult (GMT, 3U, R, P, X); /* Get point really close to P along small circle */ |
| 5056 | gmt_cart_to_geo (GMT, &xlat2, &xlon2, X, true); /* Get coordinates of X */ |
| 5057 | az = gmt_az_backaz (GMT, xlon1, xlat1, xlon2, xlat2, false); /* Compute the azimuth from P to X at A */ |
| 5058 | return (az); |
| 5059 | } |
| 5060 | |
| 5061 | GMT_LOCAL void gmtplot_plot_vector_head_fill (struct GMT_CTRL *GMT, double *xp, double *yp, uint64_t n, struct GMT_SYMBOL *S) { |
| 5062 | /* PW: Plots the polygon that makes up a vector head. Because sometimes these head stick |
no test coverage detected