Revision 2669 branches/CqCMSDvp/libraries/libCq CMS for java.old/src/org/cresques/px/dxf/DxfCalXtru.java

View differences:

DxfCalXtru.java
1 1
/*
2 2
 * Cresques Mapping Suite. Graphic Library for constructing mapping applications.
3
 * 
4
 * Copyright (C) 2004-5. 
5 3
 *
4
 * Copyright (C) 2004-5.
5
 *
6 6
 * This program is free software; you can redistribute it and/or
7 7
 * modify it under the terms of the GNU General Public License
8 8
 * as published by the Free Software Foundation; either version 2
......
18 18
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
19 19
 *
20 20
 * For more information, contact:
21
 * 
21
 *
22 22
 * cresques@gmail.com
23 23
 */
24 24
package org.cresques.px.dxf;
25 25

  
26
import java.lang.Math;
27 26
import org.cresques.geo.Point3D;
28 27

  
28
import java.lang.Math;
29

  
30

  
29 31
public class DxfCalXtru {
30
	public static Point3D CalculateXtru(Point3D coord_in, Point3D xtru) {
31
		Point3D coord_out = new Point3D();
32
		
33
        double dxt0 = 0D, dyt0 = 0D, dzt0 = 0D;
34
        double dvx1, dvx2, dvx3;
35
        double dvy1, dvy2, dvy3;
36
        double dmod, dxt, dyt, dzt;
37
        
38
        double aux = 1D/64D; //LWS
32
    public static Point3D CalculateXtru(Point3D coord_in, Point3D xtru) {
33
        Point3D coord_out = new Point3D();
34

  
35
        double dxt0 = 0D;
36
        double dyt0 = 0D;
37
        double dzt0 = 0D;
38
        double dvx1;
39
        double dvx2;
40
        double dvx3;
41
        double dvy1;
42
        double dvy2;
43
        double dvy3;
44
        double dmod;
45
        double dxt;
46
        double dyt;
47
        double dzt;
48

  
49
        double aux = 1D / 64D; //LWS
39 50
        double aux1 = Math.abs(xtru.getX());
40 51
        double aux2 = Math.abs(xtru.getY());
41
        
52

  
42 53
        dxt0 = coord_in.getX();
43 54
        dyt0 = coord_in.getY();
44 55
        dzt0 = coord_in.getZ();
45
        
46
        double xtruX, xtruY, xtruZ;
56

  
57
        double xtruX;
58
        double xtruY;
59
        double xtruZ;
47 60
        xtruX = xtru.getX();
48 61
        xtruY = xtru.getY();
49 62
        xtruZ = xtru.getZ();
50 63

  
51 64
        if ((aux1 < aux) && (aux2 < aux)) {
52
            dmod = Math.sqrt(xtruZ*xtruZ + xtruX*xtruX);
65
            dmod = Math.sqrt((xtruZ * xtruZ) + (xtruX * xtruX));
53 66
            dvx1 = xtruZ / dmod;
54 67
            dvx2 = 0;
55 68
            dvx3 = -xtruX / dmod;
56 69
        } else {
57
            dmod = Math.sqrt(xtruY*xtruY + xtruX*xtruX);
70
            dmod = Math.sqrt((xtruY * xtruY) + (xtruX * xtruX));
58 71
            dvx1 = -xtruY / dmod;
59 72
            dvx2 = xtruX / dmod;
60 73
            dvx3 = 0;
61 74
        }
62 75

  
63
        dvy1 = xtruY*dvx3 - xtruZ*dvx2;
64
        dvy2 = xtruZ*dvx1 - xtruX*dvx3;
65
        dvy3 = xtruX*dvx2 - xtruY*dvx1;
76
        dvy1 = (xtruY * dvx3) - (xtruZ * dvx2);
77
        dvy2 = (xtruZ * dvx1) - (xtruX * dvx3);
78
        dvy3 = (xtruX * dvx2) - (xtruY * dvx1);
66 79

  
67
        dmod = Math.sqrt(dvy1*dvy1 + dvy2*dvy2 + dvy3*dvy3);
80
        dmod = Math.sqrt((dvy1 * dvy1) + (dvy2 * dvy2) + (dvy3 * dvy3));
68 81

  
69 82
        dvy1 = dvy1 / dmod;
70 83
        dvy2 = dvy2 / dmod;
71 84
        dvy3 = dvy3 / dmod;
72 85

  
73
        dxt = dvx1*dxt0 + dvy1*dyt0 + xtruX*dzt0;
74
        dyt = dvx2*dxt0 + dvy2*dyt0 + xtruY*dzt0;
75
        dzt = dvx3*dxt0 + dvy3*dyt0 + xtruZ*dzt0;
86
        dxt = (dvx1 * dxt0) + (dvy1 * dyt0) + (xtruX * dzt0);
87
        dyt = (dvx2 * dxt0) + (dvy2 * dyt0) + (xtruY * dzt0);
88
        dzt = (dvx3 * dxt0) + (dvy3 * dyt0) + (xtruZ * dzt0);
76 89

  
77 90
        coord_out.setLocation(dxt, dyt, dzt);
91

  
78 92
        //coord_out.z = dzt;
79

  
80 93
        dxt0 = 0;
81 94
        dyt0 = 0;
82 95
        dzt0 = 0;
83
        
84
		return coord_out;
85
	}
86
	
96

  
97
        return coord_out;
98
    }
99

  
87 100
    public static double cosDeg(double alfa) {
88
    	final double toRad = Math.PI/(double)180.0;
89
    	return Math.cos(alfa*toRad);
101
        final double toRad = Math.PI / (double) 180.0;
102

  
103
        return Math.cos(alfa * toRad);
90 104
    }
91 105

  
92 106
    public static double sinDeg(double alfa) {
93
    	final double toRad = Math.PI/(double)180.0;
94
    	return Math.sin(alfa*toRad);
107
        final double toRad = Math.PI / (double) 180.0;
108

  
109
        return Math.sin(alfa * toRad);
95 110
    }
96
    
111

  
97 112
    public static void CalculateArc(double[] dat, double r, double angulo) {
98
    	dat[1] = dat[1] + r * Math.sin(angulo*Math.PI/(double)180.0);
99
    	dat[0] = dat[0] + r * Math.cos(angulo*Math.PI/(double)180.0);
113
        dat[1] = dat[1] + (r * Math.sin((angulo * Math.PI) / (double) 180.0));
114
        dat[0] = dat[0] + (r * Math.cos((angulo * Math.PI) / (double) 180.0));
100 115
    }
101
    
102 116
}

Also available in: Unified diff