• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Possible loss of precision

 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
import java.awt.*;
import java.util.*;
import java.applet.*;
import java.lang.*;

public class m1 extends Applet
{
public void paint (Graphics g)
{
float Dx=0,Dy=0,Dz=0, Vxy=0,Vz=0,Vx=0,Vy=0,Axy=0,Az=0;
double heading=75, climb=30;
float TAccn=15,TSpeed=10,t=5;

int n=1,i;

double[] X = new double[5];
double[] Y = new double[5];
double[] Z = new double[5];

//Acceleration with climb motion

Axy = TAccn * ((float) Math.cos(climb));

Az = TAccn * ((float) Math.sin(climb));

Vxy = TSpeed * ((float) Math.cos(climb));

Vz = TSpeed * ((float) Math.sin(climb));

Vx = Vxy * ((float) Math.sin(heading));

Vy = Vxy * ((float) Math.cos(heading));

float sin_heading = (float) Math.sin(heading);

float t1 = t * t;

Dx = 0.5 * Axy * t1 * sin_heading;

Dy = 0.5 * Axy * t1 * ((float) Math.cos(heading));

Dz = 0.5 * Az * t1;

for(i=0;i<n;i++)
{

X[i] = X[i] + Vx * t + Dx;

Y[i] = Y[i] + Vy * t + Dy;

Z[i] = Z[i] + Vz * t + Dz;

int x1 = (int) X[i];
int y1 = (int) Y[i];

g.drawLine(0,0,x1,y1);
}
}

}



this is the program i hav written

but its giving error like
possible loss of precision for the lines

Dx = 0.5 * Axy * t1 * sin_heading;

Dy = 0.5 * Axy * t1 * ((float) Math.cos(heading));

Dz = 0.5 * Az * t1;
 
Bartender
Posts: 4116
72
Mac TypeScript Chrome Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


0.5 * Axy * t1 * sin_heading;



The problem is you are multiplying the float variable with 0.5 (which is double by default). Try using 0.5f if you want to do it the same way you are doing.
[ October 22, 2008: Message edited by: Vijitha Kumara ]
 
Marshal
Posts: 79177
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
And you would appear to have missed the naming policy when you logged on, "Kavitha Ms". We require first name-space-last name not abbreviation. Please go to "my profile" "update profile" and correct your displayed name to comply.

CR
 
author
Posts: 3285
13
Mac OS X Eclipse IDE Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Also please do UseCodeTags, it makes it easier for us to help you . Now onto your question, did you manage to resolve your problem?
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic