Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS/Canvas] Jak narysować strzałkę
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
fragles
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ś?
skowron-line
- czytałeś https://developer.mozilla.org/en/Canvas_tutorial
- pokaż kod jak Cie to 1 nie pomoże
fragles
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
skowron-line
Bardziej mi chodziło o funkcję moveTo, która przesunie kursor rysowania.
fragles
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ć
flashdev
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
fragles
dziękuję bardzo, pomogło
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.