Changeset 30233
- Timestamp:
- Jan 10, 2011, 4:52:36 PM (15 years ago)
- Location:
- branches/eam_branches/ipp-20101205/Ohana/src/kapa2/src
- Files:
-
- 2 edited
-
PSObjects.c (modified) (3 diffs)
-
bDrawObjects.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20101205/Ohana/src/kapa2/src/PSObjects.c
r27530 r30233 164 164 float *x, *y; 165 165 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 166 double sx0, sy0, sx1, sy1, sxa ;166 double sx0, sy0, sx1, sy1, sxa, sya, sxo, syo; 167 167 double X0, X1, Y0, Y1; 168 168 … … 189 189 for (i = 0; (i < object[0].Npts) && !(finite(x[i]) && finite(y[i])); i++); 190 190 if (i >= object[0].Npts) return; 191 192 /* first valid data point */ 193 sx0 = x[i]*mxi + y[i]*mxj + bx; 194 sy0 = x[i]*myi + y[i]*myj + by; 195 sx0 = MIN (MAX (sx0, X0), X1); 196 sy0 = MAX (MIN (sy0, Y0), Y1); 197 198 /* find the second valid datapoint */ 199 for (i++; (i < object[0].Npts) && !(finite(x[i]) && finite(y[i])); i++); 200 if (i >= object[0].Npts) return; 201 202 /* second valid data point */ 203 sx1 = x[i]*mxi + y[i]*mxj + bx; 204 sy1 = x[i]*myi + y[i]*myj + by; 205 sx1 = MIN (MAX (sx1, X0), X1); 206 sy1 = MAX (MIN (sy1, Y0), Y1); 207 208 /* connect first point to second point */ 209 sxa = sx0 - 0.5*(sx1 - sx0); 210 sya = MAX (sy0, Y0); 211 DrawLine (sx0, sy0, sxa, sy0); 212 DrawLine (sxa, sy0, sxa, sya); 213 214 /* draw segment equal distance behind first point and down to x-axis */ 215 sxa = 0.5*(sx0 + sx1); 216 DrawLine (sx0, sy0, sxa, sy0); 217 DrawLine (sxa, sy0, sxa, sy1); 218 DrawLine (sxa, sy1, sx1, sy1); 219 sx0 = sx1; 220 sy0 = sy1; 221 222 /* continue with rest of points */ 223 sxo = syo = 0; 224 for (i++; i < object[0].Npts; i++) { 225 if (!(finite(x[i]) && finite(y[i]))) continue; 226 sx1 = x[i]*mxi + y[i]*mxj + bx; 227 sy1 = x[i]*myi + y[i]*myj + by; 228 sx1 = MIN (MAX (sx1, X0), X1); 229 sy1 = MAX (MIN (sy1, Y0), Y1); 230 sxa = 0.5*(sx0 + sx1); 231 DrawLine (sx0, sy0, sxa, sy0); 232 DrawLine (sxa, sy0, sxa, sy1); 233 DrawLine (sxa, sy1, sx1, sy1); 234 sxo = sx0; syo = sy0; 235 sx0 = sx1; sy0 = sy1; 236 } 237 238 /* draw segment equal distance after last point and down to x-axis */ 239 sxa = sx1 + 0.5*(sx1 - sxo); 240 sya = MAX (sy1, Y0); 241 DrawLine (sx1, sy1, sxa, sy1); 242 DrawLine (sxa, sy1, sxa, sya); 243 244 # if (0) 191 245 sx0 = x[i]*mxi + y[i]*mxj + bx; 192 246 sy0 = x[i]*myi + y[i]*myj + by; … … 207 261 sx0 = sx1; sy0 = sy1; 208 262 } 263 # endif 209 264 } 210 265 -
branches/eam_branches/ipp-20101205/Ohana/src/kapa2/src/bDrawObjects.c
r29938 r30233 154 154 float *x, *y; 155 155 double mxi, mxj, myi, myj, bxi, bxj, byi, byj, bx, by; 156 double sx0, sy0, sx1, sy1, sxa ;156 double sx0, sy0, sx1, sy1, sxa, sya, sxo, syo; 157 157 double X0, X1, Y0, Y1; 158 158 … … 179 179 for (i = 0; (i < object[0].Npts) && !(finite(x[i]) && finite(y[i])); i++); 180 180 if (i >= object[0].Npts) return; 181 182 /* first valid data point */ 183 sx0 = x[i]*mxi + y[i]*mxj + bx; 184 sy0 = x[i]*myi + y[i]*myj + by; 185 sx0 = MIN (MAX (sx0, X0), X1); 186 sy0 = MAX (MIN (sy0, Y0), Y1); 187 188 /* find the second valid datapoint */ 189 for (i++; (i < object[0].Npts) && !(finite(x[i]) && finite(y[i])); i++); 190 if (i >= object[0].Npts) return; 191 192 /* second valid data point */ 193 sx1 = x[i]*mxi + y[i]*mxj + bx; 194 sy1 = x[i]*myi + y[i]*myj + by; 195 sx1 = MIN (MAX (sx1, X0), X1); 196 sy1 = MAX (MIN (sy1, Y0), Y1); 197 198 /* connect first point to second point */ 199 sxa = sx0 - 0.5*(sx1 - sx0); 200 sya = MAX (sy0, Y0); 201 DrawLine (buffer, sx0, sy0, sxa, sy0); 202 DrawLine (buffer, sxa, sy0, sxa, sya); 203 204 /* draw segment equal distance behind first point and down to x-axis */ 205 sxa = 0.5*(sx0 + sx1); 206 DrawLine (buffer, sx0, sy0, sxa, sy0); 207 DrawLine (buffer, sxa, sy0, sxa, sy1); 208 DrawLine (buffer, sxa, sy1, sx1, sy1); 209 sx0 = sx1; 210 sy0 = sy1; 211 212 /* continue with rest of points */ 213 sxo = syo = 0; 214 for (i++; i < object[0].Npts; i++) { 215 if (!(finite(x[i]) && finite(y[i]))) continue; 216 sx1 = x[i]*mxi + y[i]*mxj + bx; 217 sy1 = x[i]*myi + y[i]*myj + by; 218 sx1 = MIN (MAX (sx1, X0), X1); 219 sy1 = MAX (MIN (sy1, Y0), Y1); 220 sxa = 0.5*(sx0 + sx1); 221 DrawLine (buffer, sx0, sy0, sxa, sy0); 222 DrawLine (buffer, sxa, sy0, sxa, sy1); 223 DrawLine (buffer, sxa, sy1, sx1, sy1); 224 sxo = sx0; syo = sy0; 225 sx0 = sx1; sy0 = sy1; 226 } 227 228 /* draw segment equal distance after last point and down to x-axis */ 229 sxa = sx1 + 0.5*(sx1 - sxo); 230 sya = MAX (sy1, Y0); 231 DrawLine (buffer, sx1, sy1, sxa, sy1); 232 DrawLine (buffer, sxa, sy1, sxa, sya); 233 234 # if (0) 181 235 sx0 = x[i]*mxi + y[i]*mxj + bx; 182 236 sy0 = x[i]*myi + y[i]*myj + by; … … 197 251 sx0 = sx1; sy0 = sy1; 198 252 } 253 # endif 199 254 } 200 255
Note:
See TracChangeset
for help on using the changeset viewer.
