| 50 | | var G:Number,H:Number; |
|---|
| 51 | | var w1:Number,w2:Number,w3:Number,w4:Number; |
|---|
| 52 | | var x0:Number=i_vertex[0].x; |
|---|
| 53 | | var x1:Number=i_vertex[1].x; |
|---|
| 54 | | var x2:Number=i_vertex[2].x; |
|---|
| 55 | | var x3:Number=i_vertex[3].x; |
|---|
| 56 | | var y0:Number=i_vertex[0].y; |
|---|
| 57 | | var y1:Number=i_vertex[1].y; |
|---|
| 58 | | var y2:Number=i_vertex[2].y; |
|---|
| 59 | | var y3:Number=i_vertex[3].y; |
|---|
| 60 | | var ltx:Number=this._local_x; |
|---|
| 61 | | var lty:Number=this._local_y; |
|---|
| 62 | | var rbx:Number=ltx+this._width; |
|---|
| 63 | | var rby:Number=lty+this._height; |
|---|
| | 50 | var ltx:Number = this._local_x; |
|---|
| | 51 | var lty:Number = this._local_y; |
|---|
| | 52 | var rbx:Number = ltx + this._width; |
|---|
| | 53 | var rby:Number = lty + this._height; |
|---|
| | 54 | |
|---|
| | 55 | var det_1:Number; |
|---|
| | 56 | var a13:Number, a14:Number, a23:Number, a24:Number, a33:Number, a34:Number, a43:Number, a44:Number; |
|---|
| | 57 | var b11:Number, b12:Number, b13:Number, b14:Number, b21:Number, b22:Number, b23:Number, b24:Number, b31:Number, b32:Number, b33:Number, b34:Number, b41:Number, b42:Number, b43:Number, b44:Number; |
|---|
| | 58 | var t1:Number, t2:Number, t3:Number, t4:Number, t5:Number, t6:Number; |
|---|
| | 59 | var v1:Number, v2:Number, v3:Number, v4:Number; |
|---|
| | 60 | var kx0:Number, kx1:Number, kx2:Number, kx3:Number, kx4:Number, kx5:Number, kx6:Number, kx7:Number; |
|---|
| | 61 | var ky0:Number, ky1:Number, ky2:Number, ky3:Number, ky4:Number, ky5:Number, ky6:Number, ky7:Number; |
|---|
| | 62 | { |
|---|
| | 63 | v1 = i_vertex[0].x; |
|---|
| | 64 | v2 = i_vertex[1].x; |
|---|
| | 65 | v3 = i_vertex[2].x; |
|---|
| | 66 | v4 = i_vertex[3].x; |
|---|
| | 67 | a13 = -ltx * v1; |
|---|
| | 68 | a14 = -lty * v1; |
|---|
| | 69 | a23 = -rbx * v2; |
|---|
| | 70 | a24 = -lty * v2; |
|---|
| | 71 | a33 = -rbx * v3; |
|---|
| | 72 | a34 = -rby * v3; |
|---|
| | 73 | a43 = -ltx * v4; |
|---|
| | 74 | a44 = -rby * v4; |
|---|
| | 75 | |
|---|
| | 76 | t1 = a33 * a44 - a34 * a43; |
|---|
| | 77 | t4 = a34 * ltx - rbx * a44; |
|---|
| | 78 | t5 = rbx * a43 - a33 * ltx; |
|---|
| | 79 | t2 = rby * (a34 - a44); |
|---|
| | 80 | t3 = rby * (a43 - a33); |
|---|
| | 81 | t6 = rby * (rbx - ltx); |
|---|
| | 82 | |
|---|
| | 83 | b21 = -a23 * t4 - a24 * t5 - rbx * t1; |
|---|
| | 84 | b11 = (a23 * t2 + a24 * t3) + lty * t1; |
|---|
| | 85 | b31 = (a24 * t6 - rbx * t2) + lty * t4; |
|---|
| | 86 | b41 = (-rbx * t3 - a23 * t6) + lty * t5; |
|---|
| | 87 | |
|---|
| | 88 | t1 = a43 * a14 - a44 * a13; |
|---|
| | 89 | t2 = a44 * lty - rby * a14; |
|---|
| | 90 | t3 = rby * a13 - a43 * lty; |
|---|
| | 91 | t4 = ltx * (a44 - a14); |
|---|
| | 92 | t5 = ltx * (a13 - a43); |
|---|
| | 93 | t6 = ltx * (lty - rby); |
|---|
| | 94 | |
|---|
| | 95 | b12 = -rby * t1 - a33 * t2 - a34 * t3; |
|---|
| | 96 | b22 = (a33 * t4 + a34 * t5) + rbx * t1; |
|---|
| | 97 | b32 = (-a34 * t6 - rby * t4) + rbx * t2; |
|---|
| | 98 | b42 = (-rby * t5 + a33 * t6) + rbx * t3; |
|---|
| | 99 | |
|---|
| | 100 | t1 = a13 * a24 - a14 * a23; |
|---|
| | 101 | t4 = a14 * rbx - ltx * a24; |
|---|
| | 102 | t5 = ltx * a23 - a13 * rbx; |
|---|
| | 103 | t2 = lty * (a14 - a24); |
|---|
| | 104 | t3 = lty * (a23 - a13); |
|---|
| | 105 | t6 = lty * (ltx - rbx); |
|---|
| | 106 | |
|---|
| | 107 | b23 = -a43 * t4 - a44 * t5 - ltx * t1; |
|---|
| | 108 | b13 = (a43 * t2 + a44 * t3) + rby * t1; |
|---|
| | 109 | b33 = (a44 * t6 - ltx * t2) + rby * t4; |
|---|
| | 110 | b43 = (-ltx * t3 - a43 * t6) + rby * t5; |
|---|
| | 111 | |
|---|
| | 112 | t1 = a23 * a34 - a24 * a33; |
|---|
| | 113 | t2 = a24 * rby - lty * a34; |
|---|
| | 114 | t3 = lty * a33 - a23 * rby; |
|---|
| | 115 | t4 = rbx * (a24 - a34); |
|---|
| | 116 | t5 = rbx * (a33 - a23); |
|---|
| | 117 | t6 = rbx * (rby - lty); |
|---|
| | 118 | |
|---|
| | 119 | b14 = -lty * t1 - a13 * t2 - a14 * t3; |
|---|
| | 120 | b24 = a13 * t4 + a14 * t5 + ltx * t1; |
|---|
| | 121 | b34 = -a14 * t6 - lty * t4 + ltx * t2; |
|---|
| | 122 | b44 = -lty * t5 + a13 * t6 + ltx * t3; |
|---|
| | 123 | |
|---|
| | 124 | det_1 = (ltx * (b11 + b14) + rbx * (b12 + b13)); |
|---|
| | 125 | if (det_1 == 0) { |
|---|
| | 126 | det_1=0.0001; |
|---|
| | 127 | // 0 になるのは理論上有り得ないけれど念のために入れてある |
|---|
| | 128 | //System.out.println("Could not get inverse matrix(1)."); |
|---|
| | 129 | //return false; |
|---|
| | 130 | } |
|---|
| | 131 | det_1 = 1 / det_1; |
|---|
| | 132 | |
|---|
| | 133 | kx0 = (b11 * v1 + b12 * v2 + b13 * v3 + b14 * v4) * det_1; |
|---|
| | 134 | kx1 = (b11 + b12 + b13 + b14) * det_1; |
|---|
| | 135 | kx2 = (b21 * v1 + b22 * v2 + b23 * v3 + b24 * v4) * det_1; |
|---|
| | 136 | kx3 = (b21 + b22 + b23 + b24) * det_1; |
|---|
| | 137 | kx4 = (b31 * v1 + b32 * v2 + b33 * v3 + b34 * v4) * det_1; |
|---|
| | 138 | kx5 = (b31 + b32 + b33 + b34) * det_1; |
|---|
| | 139 | kx6 = (b41 * v1 + b42 * v2 + b43 * v3 + b44 * v4) * det_1; |
|---|
| | 140 | kx7 = (b41 + b42 + b43 + b44) * det_1; |
|---|
| | 141 | } |
|---|
| | 142 | { |
|---|
| | 143 | v1 = i_vertex[0].y; |
|---|
| | 144 | v2 = i_vertex[1].y; |
|---|
| | 145 | v3 = i_vertex[2].y; |
|---|
| | 146 | v4 = i_vertex[3].y; |
|---|
| | 147 | a13 = -ltx * v1; |
|---|
| | 148 | a14 = -lty * v1; |
|---|
| | 149 | a23 = -rbx * v2; |
|---|
| | 150 | a24 = -lty * v2; |
|---|
| | 151 | a33 = -rbx * v3; |
|---|
| | 152 | a34 = -rby * v3; |
|---|
| | 153 | a43 = -ltx * v4; |
|---|
| | 154 | a44 = -rby * v4; |
|---|
| | 155 | |
|---|
| | 156 | t1 = a33 * a44 - a34 * a43; |
|---|
| | 157 | t4 = a34 * ltx - rbx * a44; |
|---|
| | 158 | t5 = rbx * a43 - a33 * ltx; |
|---|
| | 159 | t2 = rby * (a34 - a44); |
|---|
| | 160 | t3 = rby * (a43 - a33); |
|---|
| | 161 | t6 = rby * (rbx - ltx); |
|---|
| | 162 | |
|---|
| | 163 | b21 = -a23 * t4 - a24 * t5 - rbx * t1; |
|---|
| | 164 | b11 = (a23 * t2 + a24 * t3) + lty * t1; |
|---|
| | 165 | b31 = (a24 * t6 - rbx * t2) + lty * t4; |
|---|
| | 166 | b41 = (-rbx * t3 - a23 * t6) + lty * t5; |
|---|
| | 167 | |
|---|
| | 168 | t1 = a43 * a14 - a44 * a13; |
|---|
| | 169 | t2 = a44 * lty - rby * a14; |
|---|
| | 170 | t3 = rby * a13 - a43 * lty; |
|---|
| | 171 | t4 = ltx * (a44 - a14); |
|---|
| | 172 | t5 = ltx * (a13 - a43); |
|---|
| | 173 | t6 = ltx * (lty - rby); |
|---|
| | 174 | |
|---|
| | 175 | b12 = -rby * t1 - a33 * t2 - a34 * t3; |
|---|
| | 176 | b22 = (a33 * t4 + a34 * t5) + rbx * t1; |
|---|
| | 177 | b32 = (-a34 * t6 - rby * t4) + rbx * t2; |
|---|
| | 178 | b42 = (-rby * t5 + a33 * t6) + rbx * t3; |
|---|
| | 179 | |
|---|
| | 180 | t1 = a13 * a24 - a14 * a23; |
|---|
| | 181 | t4 = a14 * rbx - ltx * a24; |
|---|
| | 182 | t5 = ltx * a23 - a13 * rbx; |
|---|
| | 183 | t2 = lty * (a14 - a24); |
|---|
| | 184 | t3 = lty * (a23 - a13); |
|---|
| | 185 | t6 = lty * (ltx - rbx); |
|---|
| | 186 | |
|---|
| | 187 | b23 = -a43 * t4 - a44 * t5 - ltx * t1; |
|---|
| | 188 | b13 = (a43 * t2 + a44 * t3) + rby * t1; |
|---|
| | 189 | b33 = (a44 * t6 - ltx * t2) + rby * t4; |
|---|
| | 190 | b43 = (-ltx * t3 - a43 * t6) + rby * t5; |
|---|
| | 191 | |
|---|
| | 192 | t1 = a23 * a34 - a24 * a33; |
|---|
| | 193 | t2 = a24 * rby - lty * a34; |
|---|
| | 194 | t3 = lty * a33 - a23 * rby; |
|---|
| | 195 | t4 = rbx * (a24 - a34); |
|---|
| | 196 | t5 = rbx * (a33 - a23); |
|---|
| | 197 | t6 = rbx * (rby - lty); |
|---|
| | 198 | |
|---|
| | 199 | b14 = -lty * t1 - a13 * t2 - a14 * t3; |
|---|
| | 200 | b24 = a13 * t4 + a14 * t5 + ltx * t1; |
|---|
| | 201 | b34 = -a14 * t6 - lty * t4 + ltx * t2; |
|---|
| | 202 | b44 = -lty * t5 + a13 * t6 + ltx * t3; |
|---|
| | 203 | |
|---|
| | 204 | det_1 = (ltx * (b11 + b14) + rbx * (b12 + b13)); |
|---|
| | 205 | if (det_1 == 0) { |
|---|
| | 206 | det_1=0.0001; |
|---|
| | 207 | // 0 になるのは理論上有り得ないけれど念のために入れてある |
|---|
| | 208 | //System.out.println("Could not get inverse matrix(2)."); |
|---|
| | 209 | //return false; |
|---|
| | 210 | } |
|---|
| | 211 | det_1 = 1 / det_1; |
|---|
| | 212 | |
|---|
| | 213 | ky0 = (b11 * v1 + b12 * v2 + b13 * v3 + b14 * v4) * det_1; |
|---|
| | 214 | ky1 = (b11 + b12 + b13 + b14) * det_1; |
|---|
| | 215 | ky2 = (b21 * v1 + b22 * v2 + b23 * v3 + b24 * v4) * det_1; |
|---|
| | 216 | ky3 = (b21 + b22 + b23 + b24) * det_1; |
|---|
| | 217 | ky4 = (b31 * v1 + b32 * v2 + b33 * v3 + b34 * v4) * det_1; |
|---|
| | 218 | ky5 = (b31 + b32 + b33 + b34) * det_1; |
|---|
| | 219 | ky6 = (b41 * v1 + b42 * v2 + b43 * v3 + b44 * v4) * det_1; |
|---|
| | 220 | ky7 = (b41 + b42 + b43 + b44) * det_1; |
|---|
| | 221 | } |
|---|
| | 222 | |
|---|
| | 223 | det_1 = kx5 * (-ky7) - (-ky5) * kx7; |
|---|
| | 224 | if (det_1 == 0) { |
|---|
| | 225 | det_1=0.0001; |
|---|
| | 226 | //System.out.println("Could not get inverse matrix(3)."); |
|---|
| | 227 | //return false; |
|---|
| | 228 | } |
|---|
| | 229 | det_1 = 1 / det_1; |
|---|