Diese Seite mit anderen teilen ...

Informationen zum Thema:
Forum:
WinDev Forum
Beiträge im Thema:
3
Erster Beitrag:
vor 3 Jahren, 4 Monaten
Letzter Beitrag:
vor 3 Jahren, 4 Monaten
Beteiligte Autoren:
Gianni Spano, Alexandre Leclerc

[WD17] How to build an audiometry graphic

Startbeitrag von Gianni Spano am 14.02.2015 22:34

Hello to All

I'm developing an application for audiology and i would reproduce the same grafic with its values for an audimetry exam.

Here you can see an example:



some questions:
- How to invert values in the X axis - starting from 120 to 0...now Windev allow you (as i know) to start from 0 to 120 .
- How to show the Y legend value of each values (hz 125 250 500 etc etc)
- How to insert the "circle", ">" or "

Antworten:

Hi Gianni,

I did not take the time to check that out, but if you can't find the desired features, you can plot a graph yourself using an image control. This will be a bit of work, but in the end you will have exactly that layout. (You can also ask a Graph to draw itself in an image control, but then this would not be helpful to know where to put the symbols.

Also, it's not possible to have custom X and > < in a standard graph. But if it does not need to be exactly as above, you can simply pick a different line thickness and color and put a legend. Green is , Blue is X, Orange is O, etc.

Best regards,
Alexandre Leclerc

von Alexandre Leclerc - am 16.02.2015 13:35

Re: [WD17] How to build an audiometry graphic ****SOLVED****

Hello to All

Following Alexandre Leclers's suggestion, i have been able to reproduce (finally!!) an audiometry chart

Here is the resulting chart of the test....


And here is the piece of code used to generate the chart


nMaxSeries1 is int =0
nMaxSeries2 is int =0
grCreate("Chart1",grCurve)
grOrientation("Chart1",grXCoordinate,grAtRight,grAtBottom)
grGridLines("Chart1",True,grXCoordinate)
grGridLines("Chart1",True,grYCoordinate)
grLineThickness("Chart1",1,2)
grSeriesColor("Chart1",1,iLightRed)
grSeriesColor("Chart1",2,iLightBlue)
grOrigin ("Chart1",0,120,grYCoordinate)
grOrigin ("Chart1",0,12,grXCoordinate)
// Series 1
grAddData("Chart1",1,50);nMaxSeries1+=1
grAddData("Chart1",1,25);nMaxSeries1+=1
grAddData("Chart1",1,30);nMaxSeries1+=1
grAddData("Chart1",1,10);nMaxSeries1+=1
grAddData("Chart1",1,20);nMaxSeries1+=1
grAddData("Chart1",1,50);nMaxSeries1+=1
grAddData("Chart1",1,60);nMaxSeries1+=1
grAddData("Chart1",1,80);nMaxSeries1+=1
grAddData("Chart1",1,90);nMaxSeries1+=1
grAddData("Chart1",1,100);nMaxSeries1+=1
grAddData("Chart1",1,100);nMaxSeries1+=1
// Series 2
grAddData("Chart1",2,55);nMaxSeries2+=1
grAddData("Chart1",2,30);nMaxSeries2+=1
grAddData("Chart1",2,35);nMaxSeries2+=1
grAddData("Chart1",2,15);nMaxSeries2+=1
grAddData("Chart1",2,25);nMaxSeries2+=1
grAddData("Chart1",2,55);nMaxSeries2+=1
grAddData("Chart1",2,65);nMaxSeries2+=1

grDestinationControl("Chart1",IMG_Image1)
grDraw("Chart1")


x is int
y is int
x1 is int
y1 is int
x2 is int
y2 is int
dStartDrawing(IMG_Image1)

FOR j=1 TO nMaxSeries1
x = grInfoPoint("Chart1", grXCoordinate, 1, j)
y = grInfoPoint("Chart1", grYCoordinate, 1, j)
IF x > 0 THEN
x1=x-8
y1=y+8
x2=x+8
y2=y-8
dCircle(x1,y1,x2,y2,Transparent,iLightRed)
END
END
FOR j=1 TO nMaxSeries2

x = grInfoPoint("Chart1", grXCoordinate, 2, j)
y = grInfoPoint("Chart1", grYCoordinate, 2, j)
x-=5
y-=8
IF x > 0 THEN
dText(x,y,"X",iLightBlue)
END
END
grDraw("Chart1")





I see a strange behaviour during the "dcircle" function.
If i omit the 2nd "grDraw" function, the circle are not drawn, so i don't understand
why it need to be declared to show correctly the circle...
Someone knows the reason??

Hope this code will help other developers..
In the meantime if someone has an idea to improve this little work, he is welcome..

Regards

Gianni

von Gianni Spano - am 16.02.2015 21:26
Zur Information:
MySnip.de hat keinen Einfluss auf die Inhalte der Beiträge. Bitte kontaktieren Sie den Administrator des Forums bei Problemen oder Löschforderungen über die Kontaktseite.
Falls die Kontaktaufnahme mit dem Administrator des Forums fehlschlägt, kontaktieren Sie uns bitte über die in unserem Impressum angegebenen Daten.