Changeset 11459 for trunk/psModules/src/extras/pmKapaPlots.c
- Timestamp:
- Jan 30, 2007, 5:11:35 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/extras/pmKapaPlots.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/extras/pmKapaPlots.c
r11253 r11459 7 7 * @author EAM, IfA 8 8 * 9 * @version $Revision: 1. 6$ $Name: not supported by cvs2svn $10 * @date $Date: 2007-01- 24 02:54:15 $9 * @version $Revision: 1.7 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2007-01-31 03:11:35 $ 11 11 * 12 12 * Copyright 2006 Institute for Astronomy, University of Hawaii … … 145 145 } 146 146 147 bool pmKapaPlotVectorTriple_AutoLimits_OpenGraph (int kapa, Graphdata *graphdata, psVector *xVec, psVector *yVec, psVector *zVec, bool increasing) 148 { 149 150 // set limits based on data values 151 graphdata->xmin = FLT_MAX; 152 graphdata->xmax = FLT_MIN; 153 graphdata->ymin = FLT_MAX; 154 graphdata->ymax = FLT_MIN; 155 float zmin = FLT_MAX; 156 float zmax = FLT_MIN; 157 for (int i = 0; i < xVec->n; i++) { 158 graphdata->xmin = PS_MIN (graphdata->xmin, xVec->data.F32[i]); 159 graphdata->xmax = PS_MAX (graphdata->xmax, xVec->data.F32[i]); 160 graphdata->ymin = PS_MIN (graphdata->ymin, yVec->data.F32[i]); 161 graphdata->ymax = PS_MAX (graphdata->ymax, yVec->data.F32[i]); 162 zmin = PS_MIN (zmin, zVec->data.F32[i]); 163 zmax = PS_MAX (zmax, zVec->data.F32[i]); 164 } 165 // add 5% to range 166 float range; 167 168 psVector *zScale = psVectorAlloc (zVec->n, PS_DATA_F32); 169 170 range = zmax - zmin; 171 if (range == 0.0) { 172 psVectorInit (zScale, 1.0); 173 } else { 174 for (int i = 0; i < zVec->n; i++) { 175 if (increasing) { 176 zScale->data.F32[i] = PS_MIN (1.5, PS_MAX(0.05, 1.5*(zVec->data.F32[i] - zmin)/range)); 177 } else { 178 zScale->data.F32[i] = PS_MIN (1.5, PS_MAX(0.05, 1.5*(zmax - zVec->data.F32[i])/range)); 179 } 180 } 181 } 182 183 range = graphdata->xmax - graphdata->xmin; 184 graphdata->xmax += 0.05*range; 185 graphdata->xmin -= 0.05*range; 186 187 range = graphdata->ymax - graphdata->ymin; 188 graphdata->ymax += 0.05*range; 189 graphdata->ymin -= 0.05*range; 190 191 KapaSetLimits (kapa, graphdata); 192 KapaSetFont (kapa, "helvetica", 14); 193 KapaBox (kapa, graphdata); 194 195 // the point size will be scaled from the z vector 196 graphdata->size = -1; 197 KapaPrepPlot (kapa, xVec->n, graphdata); 198 KapaPlotVector (kapa, xVec->n, xVec->data.F32); 199 KapaPlotVector (kapa, yVec->n, yVec->data.F32); 200 KapaPlotVector (kapa, zVec->n, zScale->data.F32); 201 psFree (zScale); 202 return true; 203 } 204 147 205 # else 148 206 # include "pmKapaPlots.h" … … 168 226 } 169 227 228 bool pmKapaPlotVectorTriple_AutoLimits_OpenGraph (int kapa, Graphdata *graphdata, psVector *xVec, psVector *yVec, psVector *zVec, bool increasing) 229 { 230 return false; 231 } 170 232 # endif
Note:
See TracChangeset
for help on using the changeset viewer.
