- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
GePolygon newPoly;
int c_ai = 0, n_pi = 0;
int fac[GE_MAX_POLY_VERTEX];
newPoly.n = 0;
Pt diff = ccpSub(end, bgn);
int f = 0;
do
newPoly.p[newPoly.n] = ai[c_ai] == (n_pi - 1) ? (f = 1, a[c_ai++]) : (f = 0, inp->p[n_pi++]),
fac[newPoly.n++] = f ? 0 : (ccpCross(ccpSub(newPoly.p[newPoly.n - 1], newPoly.p[newPoly.n - 2]), diff) > 0 ? 1 : -1 );
while(n_pi < inp->n);
if(c_ai < ac)
newPoly.p[newPoly.n] = a[c_ai], fac[newPoly.n++] = 0;
Из личной коллекции. Не помню, что конкретно делает, что-то вроде классификации точек полигона относительно линии...
suc-daniil 02.01.2013 17:45 # +7
absolut 02.01.2013 22:56 # +2
упоротое
someone 04.01.2013 09:43 # 0
guest 04.01.2013 09:57 # +6
psycho-coder 11.01.2013 15:57 # +1
+ в общем!
bormand 11.01.2013 17:14 # 0
Знакомая проблема, давно уже просим страйко расставить галку и крест по разные стороны от числа, чтобы не промахиваться.
absolut 12.01.2013 08:06 # 0
или чей-нибудь пинус
bormand 12.01.2013 08:17 # +1
Аккуратней надо на лошадях ездить, а то не только уздечка порвется, но и седло слетит.