请将下面代码转换成c,谢谢procedure speedmotospeedxy(yuanx, yuany, targetx, targety : integer; speedmo :double; var vx, vy:double);
var
yx,yy,tx,ty:double;
begin
yx:=yuanx;
yy:=yuany;
tx:=targetx;
ty:=targety;
if (tx = yx) and (ty = yy) then
begin
vx := 0;
vy := 0;
end else begin
vx:=(sqr(tx - yx)) + (sqr(ty - yy));
vx := speedmo * (tx - yx) / sqrt(vx);
vy:=sqr(tx - yx) + sqr(ty - yy);
vy := speedmo * (ty - yy) / sqrt(vy);
end;
end;procedure speedmotospeedxy2(yuanx, yuany, directx, directy: integer; speedmo :double; var vx, vy:double);
var
yx,yy,dx,dy:double;
begin
yx:=yuanx;
yy:=yuany;
dx:=directx;
dy:=directy;
if (dx = 0) and (dy = 0) then
begin
vx := 0;
vy := 0;
end else begin
vx:=sqr(dx) + sqr(dy);
vx := speedmo * dx / sqrt(vx);
vy:=sqr(dx) + sqr(dy);
vy := speedmo * dy / sqrt(vy);
end;
end;
var
yx,yy,tx,ty:double;
begin
yx:=yuanx;
yy:=yuany;
tx:=targetx;
ty:=targety;
if (tx = yx) and (ty = yy) then
begin
vx := 0;
vy := 0;
end else begin
vx:=(sqr(tx - yx)) + (sqr(ty - yy));
vx := speedmo * (tx - yx) / sqrt(vx);
vy:=sqr(tx - yx) + sqr(ty - yy);
vy := speedmo * (ty - yy) / sqrt(vy);
end;
end;procedure speedmotospeedxy2(yuanx, yuany, directx, directy: integer; speedmo :double; var vx, vy:double);
var
yx,yy,dx,dy:double;
begin
yx:=yuanx;
yy:=yuany;
dx:=directx;
dy:=directy;
if (dx = 0) and (dy = 0) then
begin
vx := 0;
vy := 0;
end else begin
vx:=sqr(dx) + sqr(dy);
vx := speedmo * dx / sqrt(vx);
vy:=sqr(dx) + sqr(dy);
vy := speedmo * dy / sqrt(vy);
end;
end;
{
double yx,yy,tx,ty;
yx=(double)yuanx;
yy=(double)yuany;
tx=(double)targetx;
ty=(double)targety;
if (tx==yx) and (ty==yy) then
{
vx=0;
vy=0;
}
else
{
vx=(sqr(tx-yx))+(sqr(ty-yy));
vx=speedmo * (tx - yx) / sqrt(vx);
vy=sqr(tx - yx) + sqr(ty - yy);
vy= speedmo * (ty - yy) / sqrt(vy);
}}
{
double yx,yy,tx,ty,a,b;
yx=yuanx;
yy=yuany;
tx=targetx;
ty=targety;
if (tx==ty||ty=yy)
{
*vx=0;
*vy=0;
}
else
{
*vx=sqrt(dx)+sqrt(dy);
*vx=speedmo*dx/sqrt(*vx);
*vy=sqrt(tx-yx)+sqrt(ty-yy);
*vy=speedmo*(ty-yy)/sqrt(*vy);
}
}//下一段类似翻译就可以了。
{
double yx,yy,tx,ty;
yx=yuanx;
yy=yuany;
tx=targetx;
ty=targety;
if( (tx == yx) && (ty == yy) )
{
vx = 0;
vy = 0;
}
else {
vx = (sqr(tx - yx)) + (sqr(ty - yy));
vx = speedmo * (tx - yx) / sqrt(vx);
vy = sqr(tx - yx) + sqr(ty - yy);
vy = speedmo * (ty - yy) / sqrt(vy);
}
return;
}void speedmotospeedxy2(int yuanx, yuany, directx, directy; double speedmo ; double *vx, *vy)
{
double yx,yy,dx,dy;
yx=yuanx;
yy=yuany;
dx=directx;
dy=directy;
if( (dx == 0) && (dy == 0) )
{
vx = 0;
vy = 0;
}
else {
vx = sqr(dx) + sqr(dy);
vx = speedmo * dx / sqrt(vx);
vy = sqr(dx) + sqr(dy);
vy = speedmo * dy / sqrt(vy);
}
return;
}
{ double yx,yy,dx,dy;
yx=yuanx;
yy=yuany;
dx=directx;
dy=directy;
if ((dx == 0)&& (dy == 0))
{
*vx = 0;
*vy = 0;
}
else
{
*vx = sqr(dx) + sqr(dy);
*vx = speedmo * dx / sqrt(*vx);
*vy = sqr(dx) + sqr(dy);
*vy = speedmo * dy / sqrt(*vy);
}
}