I reworked everything so now it looks better,
but something doesn't work...

vec_b_h1 should be different from vec_b_h2 but isn't.

#include <acknex.h>
#include <default.c>



VECTOR* P1={x=1;y=1;z=8;}
VECTOR* P2={x=7;y=4;z=5;}
VECTOR* P3={x=1;y=7;z=7;}
VECTOR* Result;

var Travel_Speed=1;
var Smoothness=1;


function bezier_spline(VECTOR* a, VECTOR* b, VECTOR* c, var Travel_Speed, var Smoothness)
{

VECTOR* Copy_a=a;
VECTOR* Copy_b=b;
VECTOR* Copy_c=c;

VECTOR* vec_a_b=vec_sub(Copy_b,a);
vec_set(Copy_b,b);
VECTOR* vec_b_c=vec_sub(Copy_c,b);
vec_set(Copy_c,c);
VECTOR* vec_a_c=vec_sub(Copy_c,a);
vec_set(Copy_c,c);


VECTOR* Copy_vec_a_b=vec_a_b;
VECTOR* Copy_vec_b_c=vec_b_c;
VECTOR* Copy_vec_a_c=vec_a_c;


VECTOR* vec_b_h1=vec_scale(Copy_vec_a_c,0.5);
vec_inverse(vec_b_h1);
vec_set(Copy_vec_a_c, vec_a_c);

VECTOR* vec_b_h2=vec_scale(Copy_vec_a_c,0.5);



return(vec_b_h2);




}

function main()
{
Result=bezier_spline(P1,P2,P3,1,1);


}


PANEL* Anzeige=
{
digits (10, 10, 5.3, *, 1,Result[0]);
digits (10, 20, 5.3, *, 1,Result[1]);
digits (10, 30, 5.3, *, 1,Result[2]);




flags = VISIBLE;
}