2009-06-25 4 views
2

캔버스에 대부분 Polygons을 그려 넣습니다. 대부분이 하나 이상의 다른 다각형과 가장자리를 공유합니다. Polygon이 윤곽을 그리면 "Special"이라고 표시하고 싶습니다. 그러나 겹치는 모서리 때문에 Polygon의 Stroke는 다른 Polygon에 의해 부분적으로 그려져 Stroke가 더 얇아 보이게됩니다. 또한 그리기 순서에 따라 다각형의 가장자리에 거의 모든 부분이 다각형이 적용될 수 있습니다. 다각형 사이의 가시 간격이이 "얇은 스트로크"문제보다 훨씬 덜 바람직하므로 다각형 간격을 넓히는 것은 매우 매력적인 옵션이 아닙니다.다각형에서 "내부 획"효과 만들기

내가 찾고있는 효과는 각각의 다각형을 한 쌍의 다각형으로 생성하여 하나의 다각형이 다른 한 다각형에 완전히 포함되도록 만들 수 있습니다.이 작은 다각형의 선은 실행됩니다 (그러나 중첩) 외부 폴리곤의 획. 내부 다각형은 항상 투명한 채우기를 가지며, 투명하지 않은 스트로크는 현재 다각형 쌍이 "특별"임을 나타낼 때만 나타납니다.

제 궁금한 점이 있습니다. 외부 폴리곤을 어떻게 내부에서 파생시킬 수 있습니까? 그렇지 않으면 어떻게하면이 효과를 얻을 수 있습니까?

문제의 다각형은 필요에 따라 regular polygons으로 제한 할 수 있으며, 스트로크는 멋진 미터 등이없는 단순한 1 개의 두께 실선입니다. 나는 어떤 시점에서 뇌졸중의 두께를 조절할 수 있기를 원하지만, 그보다 더 환상적인 것은 없다.

+0

다각형 오프셋 문제는 다음에서 설명합니다. http://stackoverflow.com/questions/1109536/an-algorithm-for-inflating-deflating-offsetting-buffering-polygons – user4891

+0

특수 다각형이 마지막으로 끌었 니? –

+0

많은 폴리곤이 관련되어 있으므로 비용이 많이 듭니다. 서로 국경을 맞대고 있지 않다는 보장도 없습니다. –

답변

1

나는 실제로 당신이 원하는 것을 성취 할 수있는 몇 가지 방법이 있다고 생각합니다.

먼저 원래의 다각형 안에 두 번째 작은 폴리곤을 그리는 원래 아이디어로 이동하십시오. 나쁜 생각이 아닙니다. 더 작은 폴리곤을 생성하는 방법에 대한 원래의 질문에 답하기 위해, 각 다각형의 중심을 찾아 작은 다각형을 얻기 위해 다각형의 중심점에 대한 거리의 백분율만큼 각 꼭지점을 오프셋 할 수 있습니다. 이것은 즐거운 효과를 줄 것입니다.

또 다른 방법은 z- 차수를 사용하고 "두꺼운"다각형을 약간의 음수의 z 거리만큼 오프셋하는 것입니다.

또 다른 방법은 그리기 순서를 이용하는 것입니다. 두꺼운 다각형을 마지막으로 그려야합니다. 그러면 다각형이 주변의 다각형에 의해 과도하게 흐트러지지 않습니다.

필요에 따라 작동하는 또 다른 아이디어는 다각형을 그리는 것이 아니라 라인의 일부를 두껍게 만드는 일련의 선을 그리는 것입니다.

시도해 볼 수있는 옵션이 많이 있습니다. 잘 작동하는 것을 찾으시기 바랍니다!

+0

스케일링 아이디어가 흥미 롭습니다. 두 개의 "특별"폴리곤이 서로 국경을 맞춘다면 Z 순서와 그리기 순서 조작이 실패 할 것입니다. 이는 의심의 여지가 많지 않습니다. 굵은 선도 흥미 롭지만 성능 비용은 걱정됩니다. –

+0

각 공유 가장자리에 대해 두 번이 아니라 한 번 그리기 때문에 다양한 두께의 그리기 선이 다각형을 그리는 것보다 훨씬 빠릅니다. –

+0

첫 번째 제안에 약간의 변형이있었습니다. 축소하기보다는 각 지점을 "중심"쪽으로 얼마나 멀리 이동시켜야 새로운 지점이 이전 지점에서 멀리 떨어진 StrokeThickness가되는지 정확하게 파악할 수있었습니다. –