event-handler onmousedown
roman lenz
- javascript
0 Hartmut R.0 roman lenz
hi hi
ich möchte ein Diagramm digitalisieren.
1. ausrichten: Ursprung (ux,uy)
länge der x-Achse (xx,xy)
länge der y-Achse (yx,yy)
2. Kurve picken (px,py)
3. Kurve umrechnen
ich kommen aber mit dem event-handler nicht klar.
ich kann nicht gezielt einzelne Werte in variablen speichern :-((
kann mir jemand helfen
besten Dank
roman
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head> <title></title>
<script language="javascript">
<!-- auskommentieren
var md;
var x,y;
var ux;
if (navigator.appName=="Netscape")
{window.captureEvents (Event.MOUSEDOWN);
window.onmousedown=down;}
else
{document.onmousedown=down;}
function down(e) {
if(navigator.appName=="Netscape")
{x=e.layerX; y=e.layerY;}
else
{x=event.clientX; y=event.clientY;}
if (document.body.scrollLeft)
x+=document.body.scrollLeft;
if (document.body.scrollTop)
y+=document.body.scrollTop;
}
function ausrichten() {
ux=x;
}
function kurve_picken() {
while (1*(document.FORM.kurvepicken.checked)==1) {
{document.FORM.koord.value+=x+","+y+"\n";}
}
}
//-->
</script>
</head>
<body>
<form name="FORM">
<table border="1" width="50%" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td valign="top">
<input type="button" value="Ausrichten"onClick="ausrichten()">
Lange der X-Achse:
<input type="text" name="x-achse" value="" size="4"><BR>
Lange der Y-Achse:
<input type="text" name="y-achse" value="" size="4">
<input type="checkbox" name="kurvepicken" onClick="kurve_picken()"> Kurve picken
<textarea name="koord" wrap="virtual" rows="8" cols="10"></textarea>
<input type="reset" value="Löschen">
</td>
<td valign="top"><br>
<img src="test_puls.PNG">
</td>
</tr>
</tbody>
</table>
<br>
</form>
<br>
</body>
</html>
Hallo roman,
das Script schreiben werde ich Dir nicht schreiben, aber auf Deine Fehler kann ich Dich hinweisen:
while (1*(document.FORM.kurvepicken.checked)==1) {
Wozu die Schleife sein soll, kann ich jetz nicht sehen, aber damit hast Du eine Endlosschleife:
(document.FORM.kurvepicken.checked) ist true, wenn die checkbox abgehakt ist:
while (1*true == 1) {
Die Zahl 1 wird als "true" aufgefasst, also:
while (1*true == true) {
und weil 1 * true true ist:
while (true == true) {
Deshalb läuft die Schleife endlos.
Probiers mal so:
function kurve_picken() {
if (document.FORM.kurvepicken.checked) {{document.FORM.koord.value+=x+","+y+"\n";}
}
}
MfG,
Hartmut R.
Hallo Hartmut
leider bekommen ich mit deiner Lösung auch keine schleife hin mit der ich eine kurve digitalisieren kann. ich kann dann immmer nur einen wert aufnehmen :-(( .
ich wollte mit meiner while schleife solange werte picken bis :
1*(document.FORM.kurvepicken.checked)==0 ist
Im klartext der benutzer hat die checkbox dechecked =>
1*(false=0)==0
bis bis roman
Hallo roman!
Also so ganz verstehe ich es noch nicht, aber hier mal ein Code, der beim Klicken auf die Grafik die jew. Mauskoordinaten aufnimmt:
<html>
<head>
<title></title>
<script language="javascript">
<!--
var md;
var x=0,y=0;
var ux;
if (navigator.appName=="Netscape")
{window.captureEvents (Event.MOUSEDOWN);
window.onmousedown=down;}
else
document.onmousedown=down;
function down(e) {
if(navigator.appName=="Netscape")
{x=e.layerX; y=e.layerY;}
else
{x=event.clientX; y=event.clientY;}
if (document.scrollLeft)
x+=document.scrollLeft;
if (document.scrollTop)
y+=document.scrollTop;
}
function ausrichten() {
ux=x;
}
function kurve_picken() {
if (!document.FORM.kurvepicken.checked)
document.FORM.koord.value += x + "," + y + "\n";
}
//-->
</script>
</head>
<body>
<form name="FORM">
<table border="1" width="50%" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td valign="top">
<input type="button" value="Ausrichten" onClick="ausrichten()">
Lange der X-Achse:
<input type="text" name="x-achse" value="" size="4"><BR>
Lange der Y-Achse:
<input type="text" name="y-achse" value="" size="4">
<input type="checkbox" name="kurvepicken"> Kurve picken
<textarea name="koord" wrap="virtual" rows="8" cols="10"></textarea>
<input type="reset" value="Löschen">
</td>
<td valign="top"><br>
<a href="#" onClick="kurve_picken(); return false;"><img src="test_puls.gif" width="200" height="200"></a>
</td>
</tr>
</tbody>
</table>
<br>
</form>
<br>
</body>
</html>
Wenn Du die Koordinaten nicht nur beim MouseDown haben möchtest, sondern beim MouseMove, dann brauchst Du den Code nur auf onMouseMove umzustellen.
MfG,
Hartmut R.
Hallo Hartmut
dank dir hast mich auf den richtigen weg gebracht.
hab meine script fast fertig.
bis bis roman