(20201113)
Box is fixed, and the function of battlefield does nt effect any other functions, so, the problem is closed.
s and dt are flipped, which is my mistaken.
Anyway, the problem is closed, we ensured.
// p1: Anchor // p2: setting controls // p3: Anchor(next) // p4: setting controls vPoint* vCurveCalculation::BattleField(vPoint* p1, vPoint* p2, vPoint* p3, vPoint* p4, float t) { double s = (double)t - 1.0; double dt = (double)t; vCalculation* calc = new vCalculation(); // Linear vPoint* p5 = calc->scalize(p1, (float)dt * dt); // anchor p1 vPoint* p6 = calc->scalize(p4, (float)s * s); // anchor p4 vPoint* p7 = calc->scalize(p2, (float)dt); // anchor p1 vPoint* p8 = calc->scalize(p3, (float)s); // anchor p4 vPoint* blend_001 = memorizevPoint(0.0f,0.0f,0.0f); blend_001 = calc->add(blend_001, p5); blend_001 = calc->add(blend_001, p6); blend_001 = calc->add(blend_001, p7); blend_001 = calc->add(blend_001, p8); free_point(p5); free_point(p6); free_point(p7); free_point(p8); return blend_001; }
willinglytranslate.blogspot.com