2013-11-25 2 views
1

Итак, у меня есть круг, который рисуется на холсте, он меняет размер в соответствии с настройкой. Однако, если настройка установлена ​​слишком высоко, круг больше, чем зарезервированная область, и перекрывает другие вещи на холсте.Как нарисовать круг только в определенной области?

В настоящее время я удаляю область вокруг коробки после ее намотки, но это создает трудности. Мне в основном приходится рисовать все вокруг дважды, потому что мне нужен круг, который нужно нарисовать последним. Это затрудняет реализацию действий кликов в указанной области, поскольку клик регистрируется дважды.

TL; RD: Как я могу замаскировать часть круга до Я рисую его на холсте?

ответ

0

Для этого вы можете использовать функцию clip().

 context.rect(50,50,200,200);//the area in which the circle is to be drawn 
     context.save();//saved context so it can be restored later 
     context.clip(); 
     //now draw your circle 
     context.restore(); //remove the clip 

Только площадь внутри данного прямоугольника нарисована.

Это good tutorial по данной теме.

+0

Это работает, хотя я не могу его очистить. Теперь нарисован только квадрат круга. restore() ничего не делает. – user3032989

+0

Возможно, вы можете опубликовать простой jsfiddle с кодом, чтобы мы могли предположить, почему он может не работать. –

+0

Я могу попробовать, но может потребоваться некоторое время, чтобы извлечь эту часть из целого. – user3032989

Смежные вопросы