Avatar billede themepark Nybegynder
17. juni 2003 - 12:57 Der er 27 kommentarer og
1 løsning

Tegn med JavaScript...eller andre sprog?

Jeg skal have tegnet noget på en hjemmeside som består af hhv. ASP og JavaScript.

Jeg vil derfor gerne høre om det kan lade sig gøre at tegne cirkler og streger med JavaScript?

Hvis ja, hvordan...hvis nej, hvilke(t) sprog kan jeg så bruge?

Det skal ikke være et tegne program...der er blot nogle ting, jeg skal have tegnet når siden loades.

Jeg har prøvet at kigge lidt rundt omkring for at finde svar på mit spørgsmål, men det er lidt forvirrende, da nogle siger, det godt kan lade sig gøre, mens andre siger, det ikke kan.

Jeg har samtidig med lagt mærke til at det åbenbart kan laves med VML...men jeg har BESTEMT ikke lyst til at sætte mig ind i et nyt sprog, så den mulighed ER udelukket.

Jeg kan programmer i VBScript, JavaScript og ASP...det er sådan lige det jeg kan huske :-)
Avatar billede nikolajdu Nybegynder
17. juni 2003 - 13:02 #1
Du kan tegne en cirkel med VML, men det er dårligt understøttet.

Jeg lavede en gang sådan noget fis her :)

<HTML XMLNS:v="urn:schemas-microsoft-com:vml">
<html>
<head>
<title>Nikolajdu Tegner</title>
<style>

v\:* { behavior: url(#default#VML); }

.top {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; background-color:teal; color: #33CCFF; text-decoration: none;}
</style>


<SCRIPT LANGUAGE="JavaScript">


var Ymouse = Xmouse = 0;
var klik = 0;
var formen = "streg";


function init(){

document.f.minForm.value=formen

function Mouse( evnt ) {

  Ymouse=event.y;
  Xmouse=event.x;

  document.forms.f.Xpos.value=Xmouse;
  document.forms.f.Ypos.value=Ymouse;
 
};

  document.onmousemove=Mouse;



function left(evnt) {

if (event.button==1 && Ymouse>=30)

tegn()

}
document.onmousedown=left;

}

function tegn(){

if (klik==0){
tempX = Xmouse;
tempY = Ymouse;

document.getElementById('start').style.visibility="visible"
document.getElementById('start').style.left=tempX
document.getElementById('start').style.top=tempY

klik++

}else if (formen=="streg"){

document.getElementById('start').style.visibility="hidden"

document.getElementById('tegnHer').innerHTML+='<v:POLYLINE style="Z-INDEX:1;CURSOR:crosshair;POSITION:absolute;antialias:true" points="'+tempX+','+tempY+','+Xmouse+','+Ymouse+'"></v:POLYLINE>';

tempX = Xmouse;
tempY = Ymouse;


}else if(formen=="cirkel" && Xmouse>tempX&&Ymouse>tempY){

document.getElementById('start').style.visibility="hidden"

myWidth = Xmouse-tempX;
myHeight = Ymouse-tempY;

document.getElementById('tegnHer').innerHTML+='<v:oval style="position:absolute;top:'+tempY+';left:'+tempX+';width:'+myWidth+'pt;height:'+myHeight+'pt" fillcolor="red"></v:oval>'

tempX = Xmouse;
tempY = Ymouse;

klik = 0;

    }else if(formen=="firkant"  && Xmouse>tempX&&Ymouse>tempY){
   
    document.getElementById('start').style.visibility="hidden"

myWidth = Xmouse-tempX;
myHeight = Ymouse-tempY;

document.getElementById('tegnHer').innerHTML+='<v:rect fillcolor="green" style="position:absolute;top:'+tempY+';left:'+tempX+';width:'+myWidth+'pt;height:'+myHeight+'pt"></v:rect>'

tempX = Xmouse;
tempY = Ymouse;

klik = 0;
   
    }else if(Xmouse<tempX||Ymouse<tempY){
    alert('Det kan ikke lave en negativ figur her')
   
    document.getElementById('start').style.visibility="hidden"
   
    klik = 0;
    }
}


</script>

</head>


<body bgcolor="Teal" scroll=no onLoad="init()" scroll=no leftmargin="0" marginheight="0" marginwidth="0">



<script>
document.write('<div style="position:absolute;top:0;left:0;width:'+document.body.clientWidth+';height:10;background-color:#999999;">')
document.write('<form name="f">');
document.write('<input type="button" class="top" size=5 value="Streg" onClick="klik=0;formen=\'streg\';document.f.minForm.value=formen">')
document.write('<input type="button" class="top" size=5 value="Cirkel" onClick="klik=0;formen=\'cirkel\';document.f.minForm.value=formen">')
document.write('<input type="button" class="top" size=5 value="Firkant" onClick="klik=0;formen=\'firkant\';document.f.minForm.value=formen">')
document.write('<input type="text" class="top" name="minForm" size=5 onfocus="this.blur()">')
document.write('<input type="text" class="top" name="Xpos" size=5 onfocus="this.blur()">')
document.write('<input type="text" class="top" name="Ypos" size=5 onfocus="this.blur()">')
document.write('</form>')
document.write('</div>')
</script>

<div ID="tegnHer" style="position:absolute;top:20;left:0"><div>
<div ID="start" style="position:absolute;top:20;left:0;visibility:hidden;">x<div>


</body>
</html>
<br><br>
Avatar billede themepark Nybegynder
17. juni 2003 - 13:04 #2
Som jeg skrev før...VML=TOTALT udelukket :-)
Avatar billede nikolajdu Nybegynder
17. juni 2003 - 13:04 #3
Nå for sørensen den glippede for mig. so sorry :((
Avatar billede themepark Nybegynder
17. juni 2003 - 13:05 #4
Helt i orden...for øvrigt en imponerende svartid *g*
Avatar billede nikolajdu Nybegynder
17. juni 2003 - 13:06 #5
Well har jo en del sager liggende efterhånden :))

Mon ikke der findes noget til ASP alá PHP GDLib der kan tegne... ??
Avatar billede themepark Nybegynder
17. juni 2003 - 13:06 #6
Aner det ikke :-)
Avatar billede ducks Nybegynder
17. juni 2003 - 13:09 #7
Hvad med det her?
http://kompo.dk/komponenter/?kid=61
(Jeg kender det kun ud for teksten i den grønne boks)
Avatar billede ducks Nybegynder
17. juni 2003 - 13:13 #8
Og en af mine venner viste mig engang et billede (rodetegning) som var anderledes hver gang man opdaterede, så det må vel være muligt.
Avatar billede themepark Nybegynder
17. juni 2003 - 13:18 #9
Problemet er bare at det dels koster penge og dels er det en DLL...jeg har brug for noget kode, jeg kan implementere direkte på siden :-/
Avatar billede skovenborg Nybegynder
17. juni 2003 - 16:19 #10
Der er jo også PVG:
http://www.w3.org/Graphics/SVG/Overview.htm8
og her en editor som kan redigere i det (en WYSIWYG editor):
http://www.w3.org/Amaya/

Det er godt nok et slags sprog, og jeg ved ikke hvor udbredt det, men jeg tror ikke det er så svært.
Avatar billede themepark Nybegynder
18. juni 2003 - 10:55 #11
Det kan godt bruges som en sidste udvej, men er der virkelig ikke en måde at tegne på med et mere kendt programmeringssprog? :-(
Avatar billede skovenborg Nybegynder
18. juni 2003 - 13:49 #12
I teorien kan du jo godt lave en script som laver en lille boks der hvor du klikker på siden (bliver dog meget besværligt)- men direkte funktioner til at lave cirkler er der ikke i javascript.
Avatar billede skovenborg Nybegynder
18. juni 2003 - 13:51 #13
--og derfor kan du også godt lave en slags cirkel bestående af en masse sorte divs, men det er bestemt ikke en god løsning, og du skal nok overveje at prøve VML eller PVG for at lave den slags. Med javascript bliver det for besværligt og resultatet for dårligt.
Avatar billede themepark Nybegynder
18. juni 2003 - 13:51 #14
Okay...det besværlige er ikke mig, indrømmer jeg ærligt...og jeg SKAL have mulighed for at tegne både streger og cirkler...men automatisk...det skal ikke være når jeg klikker et sted...det skal nemlig ikke være et tegneprogram :-)

Men okay...vi har hermed fået fastslået at det ikke kan lade sig gøre med JavaScript...men hvad med nogle af de andre kendte programmeringssprog? Vil som sagt helst holde mig til de sprog jeg i forvejen kan programmere i :-)
Avatar billede skovenborg Nybegynder
18. juni 2003 - 14:04 #15
Hvis du kan PHP kan dette måske hjælpe:
http://www.php.net/manual/en/ref.image.php
Avatar billede themepark Nybegynder
18. juni 2003 - 14:49 #16
Nu studerer jeg til multimediedesigner, og der lærer vi faktisk om PHP (selvom jeg så ikke har været til de timer ;-)

Både SVG og PHP lyder ganske fint, og jeg burde nok kunne bruge en af de løsninger...så hvis du smider et svar, så får du dobbelt point :-)
Avatar billede skovenborg Nybegynder
18. juni 2003 - 14:53 #17
Okay, så får du dit svar - men 30 point er nok :-)
Avatar billede themepark Nybegynder
18. juni 2003 - 14:56 #18
hmmm
Avatar billede themepark Nybegynder
18. juni 2003 - 14:56 #19
Måske...men dobbelt hjælp giver dobbelt point :-)
Avatar billede themepark Nybegynder
18. juni 2003 - 14:58 #20
Jeg KAN åbenbart kun give dig 30 point :-(
Avatar billede skovenborg Nybegynder
18. juni 2003 - 15:44 #21
Man kan godt give mere - du kan bare forhøje pointene et sted. Men det lige meget nu - takker for point ;-)
Avatar billede themepark Nybegynder
18. juni 2003 - 15:46 #22
Øhm hvordan??? Fik at vide hver gang jeg ville give mere end 30 point at jeg gav for få point????
Avatar billede skovenborg Nybegynder
18. juni 2003 - 16:08 #23
Hmm, mærkeligt - men det skal du ikke tænke på. Har jo fået point en gang og det er mer end nok :-)

Nu skal vi jo også se om hvad for en metode der er bedst - umiddelbart tror jeg PHP er bedre da PVG ikke nødvendigvis understøttes af alle browsere.
Avatar billede themepark Nybegynder
18. juni 2003 - 16:09 #24
Javist...men det ville da rart at vide hvordan man gør til en anden god gang :-)
Avatar billede skovenborg Nybegynder
18. juni 2003 - 16:09 #25
Det med at forhøje point er kun noget man kan gøre når man ikke har accepteret i forvejen. Så er der vist nok et sted hvor du kan tilbyde flere point.
Avatar billede themepark Nybegynder
18. juni 2003 - 16:11 #26
Javist...ved at trykke på Avanceret...og prøver jeg det, får jeg netop ovennævnte besked :-)
Avatar billede skovenborg Nybegynder
18. juni 2003 - 16:16 #27
Okay, men hvis du prøver på det her spørgsmål så kan du nok ikke, da du har accepteret svar.

Ellers ved jeg godt nok ikke hvad der går galt - måske en fejl i koden. Du kan måske kontakte admin hvis det sker andre steder.
Avatar billede skovenborg Nybegynder
18. juni 2003 - 16:22 #28
Måske er der også en grænse for hvor lidt ekstra point man må give - men måske der er andre som ved hvorfor,
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester