Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cuvinte si expresii neclare

Mod de lucru Purmo Tempco Digital...

Samsung S90C vs LG C3

Problema sunet RCS
 Amortizor sertare bucatarie

Codrea Pallady

Blocurile goale! Orase in car...

Motorul pe benzina 1.0 SCe65
 Mostenire In 1986

Lentile sferica pentru astigmatism

Problema inlocuire usa spate A6 C...

Ce gen de muzica este?
 Drepturile copiilor, in numele &#...

Mocheta peste parchet cu incalzir...

La multi ani mie!

Senzor filtru particule GOLF 7
 

Get x y spot coord

- - - - -
  • Please log in to reply
6 replies to this topic

#1
BIT2GB

BIT2GB

    Junior Member

  • Grup: Members
  • Posts: 106
  • Înscris: 07.11.2011
Saluare dragilor , nu am gasit nimic de javascript aici si am postat aici considerand ca ar fi cea mai ok zona , astfel se da situatia urmatoare.
Avem o imagine pe care vom pune un marker (spot) a carui coordonate dorim sa le obtinem.
Cum putem obtine acele coordonate de tip float de genul 45.005 65.921 nu doar 45 si 65?
Si 2 cum pot face daca atemps attemps ==2 sa fie sters primul spot si pus altul nou?
Si toate astea urmeaza ulterior sa fie salvate intr.o baza de date , cele 2 coordonate
Mai jos aveti codul.

function SpotTheBall($post_name, $image_path, $attempts)
{
this.$attempts	 = 0;
this.$total_attempts = $attempts || 3;
this.$name		 = 'spottheball_' + parseInt(Math.random() * 100000, 10);
this.$post_name	 = $post_name || "SpotTheBall";
this.$image_path	 = $image_path || "/";
document.write(
	 '<div>' +
	 '<div style="background: url(' + this.$image_path + 'background.jpg) left top no-repeat; margin-right: 10px;" class="SpotTheBall" id="' + this.$name + '"></div>' +
	 '<div class="results" id="' + this.$name + '_result"><b>Results:</b><br /><br /></div>' +
	 '<div style="clear: both;"></div>' +
	 '</div>'
);
this.$element = document.getElementById(this.$name);
this.$results = document.getElementById(this.$name + "_result");
this.$element.$super = this;
this.$element.onclick = function($event)
{
	 if (this.$super.$attempts < this.$super.$total_attempts) {
	 $event = $event || window.event;
	 var $x = $event.pageX || ($event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft) - document.documentElement.clientLeft);
	 var $y = $event.pageY || ($event.clientY + (document.body.scrollTop || document.documentElement.scrollTop) - document.documentElement.clientTop);
	 var $element = this;
	 $x -= $element.offsetLeft;
	 $y -= $element.offsetTop;
	 while ($element = $element.offsetParent) {
	 $x -= $element.offsetLeft;
	 $y -= $element.offsetTop;
	 }
	 var $ball = document.createElement("img");
	 $ball.src = this.$super.$image_path + "ball.gif";
	 $ball.className = "ball";
	 $ball.style.left = ($x - 6) + "px";
	 $ball.style.top = ($y - 6) + "px";
	 this.appendChild($ball);
	 this.$super.$attempts++;
	 this.$super.$results.innerHTML +=
	 '<input name="' + this.$super.$post_name + '[' + this.$super.$attempts + '][x]" type="hidden" value="' + $x + '" />' +
	 '<input name="' + this.$super.$post_name + '[' + this.$super.$attempts + '][y]" type="hidden" value="' + $y + '" />' +
	 'Ball ' + this.$super.$attempts + '. <b>' + $x + '</b>x<b>' + $y + '</b><br />';
	 }
};
}


Edited by BIT2GB, 14 June 2017 - 20:26.


#2
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,252
  • Înscris: 24.02.2007
Te referi la coordonate float pe ecran? Ecranul e format dintr-un numar finit de pixeli.

De ce folosesti $ peste tot?
De ce modifici innterHTML cand mai sus se vede ca stii de createElement()?

#3
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,473
  • Înscris: 10.08.2005

Quote

Saluare dragilor , nu am gasit nimic de javascript aici si am postat aici considerand ca ar fi cea mai ok zona , astfel se da situatia urmatoare.
Avem o imagine pe care vom pune un marker (spot) a carui coordonate dorim sa le obtinem.
Ai o imagine peste care pui un layer transparent,  iar pe layer pui ce vrei.

Cosiderand fiecare click o incercare nu ai decat sa sa construisti o alta functie care sa gestioneze numarul de incarcari si accuratetea utilizatorului.

https://www.w3school...coordinates.asp
cnvs_getCoordinates(event)
function cnvs_getCoordinates(e)
{
x=e.clientX;
y=e.clientY;
document.getElementById("xycoordinates").innerHTML="Coordinates: (" + x + "," + y + ")";
}

Edited by MarianG, 14 June 2017 - 22:15.


#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostBIT2GB, on 14 iunie 2017 - 20:24, said:

Cum putem obtine acele coordonate de tip float de genul 45.005 65.921 nu doar 45 si 65?
Consideri ca fiecare pixel e echivalentul a 0.001, si atunci trebuie sa misto mouseul cu 1000 de pixeli ca sa acoperi o unitate.

#5
BIT2GB

BIT2GB

    Junior Member

  • Grup: Members
  • Posts: 106
  • Înscris: 07.11.2011
dani.user -> Pentru ca nu is cel mai mare cunoscator si am facut aia in 15 20 min
MarianG -> daca te uitai peste cod se vede ca eu imi generez coordonatele

OriginalCopy-> Raspuns util, ai un exemplu cum fac asta?

#6
BIT2GB

BIT2GB

    Junior Member

  • Grup: Members
  • Posts: 106
  • Înscris: 07.11.2011
Edit: Am rezolvat cu coordonatele, acum o alta intrebare cum as putea desena linii doar cu click dreapta si cu click stanga sa pun spotul?

#7
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,473
  • Înscris: 10.08.2005
Si daca ai citi din link-ul postat de mine ai fi vazut solutia.
Dar in fine, tu te-ai ostenit sa inghesui toata logica intr-o singura subrutina.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate