Page 697 - 2
P. 697
object[num].y = Y;
object[num].z = Z;
}
float angle_x(Coordinate point, Vector state)
{
return atan((point.x - state.pos) / point.y) * 180 / PI;
}
float angle_y(Coordinate point, Vector state)
{
return atan(point.z / (sqrt(pow(point.x - state.x, 2) + pow(point.y, 2)))) * 180 / PI;
}
void focusing(int focus_object)
{
focusing_Enable = 1;
if (changing_object_Enable == 0)
{
speed.x = (angle_x(object[focus_object], state) - state.x) / PERIOD;
float temp = angle_y(object[focus_object], state);
speed.y = (angle_y(object[focus_object], state) - state.y) / PERIOD;
}
if (focus_object != selected_object)
{
changing_object_Enable = 1;
changing_coordinate.x = state.pos + sin(state.x*PI / 180);
changing_coordinate.y = cos(state.x*PI / 180);
changing_coordinate.z = sin(state.y*PI / 180);
selected_object = focus_object;
float time = change_time - (out / 2) - (in / 2);
normal_change_speed.x = (object[focus_object].x - changing_coordinate.x) / time;
normal_change_speed.y = (object[focus_object].y - changing_coordinate.y) / time;
normal_change_speed.z = (object[focus_object].z - changing_coordinate.z) / time;
}
if (changing_object_Enable == 1)
{
if (changing_progress < in)
{
float percent = (changing_progress) / (in);
object_speed.x = normal_change_speed.x*percent;
object_speed.y = normal_change_speed.y*percent;
- 697 -