Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS/Canvas] Jak narysować strzałkę, problem geometryczny
fragles
post 17.10.2010, 17:38:26
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 14.12.2008

Ostrzeżenie: (0%)
-----


bawię się trochę canvasem i mam problem - jak narysować strzałkę

mam tam jakieś kwadraciki koła i inne takie i teraz kliknę obiekt 1 potem 2 to chciałbym aby się strzałka rysowała od 1 do 2

o ile prostą pod kątem narysuje jest OK to grot strzałki minie wychodzi

jaki jest na to wzór czy coś?
Go to the top of the page
+Quote Post
skowron-line
post 17.10.2010, 17:40:21
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


- czytałeś https://developer.mozilla.org/en/Canvas_tutorial
- pokaż kod jak Cie to 1 nie pomoże


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
fragles
post 17.10.2010, 17:53:57
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 14.12.2008

Ostrzeżenie: (0%)
-----


Cytat(skowron-line @ 17.10.2010, 18:40:21 ) *
- czytałeś https://developer.mozilla.org/en/Canvas_tutorial
- pokaż kod jak Cie to 1 nie pomoże


no ja wiem o rotate
ale tego nie chce bo się mi wszystko przekręca, czy prostokąciki czy tam kółka jakie mam na canvasie a ja chcę tylko strzałkę mieć pd kątem

ogólnie sam trzon strzałki strzałki rysowany jest tak

var x=ptX+Math.round(50*Math.sin((azm)*Math.PI/180)),
y=ptY-Math.round(50*Math.cos((azm)*Math.PI/180));
ctx.lineTo(x,y);

no i teraz od punkty x i y trzeba by grot strzalki narysować, ale nie mam pomysłu jak
Go to the top of the page
+Quote Post
skowron-line
post 17.10.2010, 18:02:39
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Bardziej mi chodziło o funkcję moveTo, która przesunie kursor rysowania.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
fragles
post 17.10.2010, 18:28:12
Post #5





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 14.12.2008

Ostrzeżenie: (0%)
-----


no to klikam raz mam punkt obiektu np kwadracika
klikam drugi raz mam punkt drugiego kwadracika

no jest moveTo(x+rozmiarkwadratu/2,y+rozmiarkwadratu/2)

x,y - poczatek ryowania kwadratu

i tyle - ale jak ten grot strzałki narysować
Go to the top of the page
+Quote Post
flashdev
post 17.10.2010, 18:29:28
Post #6





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(fragles @ 17.10.2010, 18:53:57 ) *


Kod
// pseudokod
// dane: x1, y1, x2, y2
//
kat = atan2(y2-y1, x2-x1); // kat strzalki
length = 10; // dlugosc brzegu grotu
kat2 = PI * .1 // rozwartosc grotu strzalki
drawLine(x2, y2, x2 + cos(kat + kat2)*length, sin(kat + kat2)*length );
drawLine(x2, y2, x2 + cos(kat - kat2)*length, sin(kat - kat2)*length );


to powinno pomoc winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
fragles
post 17.10.2010, 20:42:25
Post #7





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 14.12.2008

Ostrzeżenie: (0%)
-----


dziękuję bardzo, pomogło
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 15:11