Canvas --> lineWidth
Всем здравствуйте!:thanks:
Изучаю возможности Canvas, и нужно нарисовать сетку. Но вот что бы линии тонкие были не получается. Рисую так:
context.moveTo(_x0,_y0);
context.lineTo(_x1,_y1);
context.strokeStyle = _color;
context.lineWidth = 0.1;
context.stroke();
При такой толщине вообще не рисует. Но если задать даже 0.5 - то разницы с линией толщиной в 1 px не будет. З.Ы. Извините если вам кажется глупым вопрос, но просто в ActionScript линия такая без проблем рисуется Может кто бодался с этим ? |
Вроде один пиксел:
<!DOCTYPE html>
<html>
<head></head>
<body>
<canvas style="width: 100px; height: 100px;"></canvas>
<script style="text/javascript">
var el = document.getElementsByTagName('canvas')[0],
context = el.getContext("2d");
context.moveTo(0,0);
context.lineTo(100,100);
context.strokeStyle = '#000';
context.lineWidth = 1;
context.stroke();
</script>
</body>
</html>
|
Так вот хочется меньше пикселя что бы была.
(Многого наверно хочу :) ) |
Цитата:
например если задать параметр context.lineWidth = 0.5; // линия станет более светлая, эмуляция полпикселя |
Цитата:
|
Ну да, видел что светлее.
Во Flash то зараза, как то это делает. И это визуально! меньше пикселя. |
Цитата:
|
Цитата:
|
Поэкспериментировал я с толщиной линии в Canvas. Самая тоненькая (визуально) получается при толщине 0.125.
При 0.12 Видно уже не будет. Может кому то пригодится:) |
ну я и при толщине 0.01 вижу ее, приглядись внимательнее
<!DOCTYPE html>
<html>
<head></head>
<body>
<canvas style="width: 100px; height: 100px;"></canvas>
<script style="text/javascript">
var el = document.getElementsByTagName('canvas')[0],
context = el.getContext("2d");
context.moveTo(0,0);
context.lineTo(100,100);
context.strokeStyle = '#000';
context.lineWidth = .01;
context.stroke();
</script>
</body>
</html>
|
Взял Ваш код, признаюсь :thanks: , видно.
Но в моем случае почему то - не видно.:( Я canvas создаю динамически. |
ну и при динамическом создании ее видно:
<!DOCTYPE html>
<html>
<head></head>
<body>
<script style="text/javascript">
var el = document.createElement('canvas'),
context = el.getContext("2d");
el.style.width = '100px';
el.style.height = '100px';
document.body.appendChild( el );
context.moveTo(10,10);
context.lineTo(100,10);
context.strokeStyle = '#000';
context.lineWidth = .01;
context.stroke();
</script>
</body>
</html>
|
Значит что то у меня не так
Буду искать |
devote,
Попробуйте нарисовать линию так:
<!DOCTYPE html>
02 <html>
03 <head></head>
04 <body>
05
06 <script style="text/javascript">
07
08 var el = document.createElement('canvas'),
09 context = el.getContext("2d");
10
11 el.style.width = '100px';
12 el.style.height = '100px';
13
14 document.body.appendChild( el );
15
16 context.moveTo(10,0);
17 context.lineTo(10,100);
18
19 context.strokeStyle = '#000';
20 context.lineWidth = .01;
21 context.stroke();
22 </script>
23
24 </body>
25 </html>
Видно? |
ну видимо горизонтальные и вертикальные линии он обрабатывает иначе.
И не копируйте номера строк, там есть справа кнопочка, отключить нумерацию в коде |
http://jsfiddle.net/loktar/KcTfH/ - может быть поможет
|
| Часовой пояс GMT +3, время: 11:16. |