2012-01-11 2 views
1

임의의 형태로 "균등하게"배포하려는 간단한 문자열 (단순한 의미 1-4 단어, 완전한 문장이 아님)이 있습니다.모양 안에 텍스트를 배포하십시오.

"균등하게"말하자면 텍스트가 다른 텍스트와 겹치지 않도록 할 수 있지만 모든 문자열은 특정 위치에서 묶어 두지 않습니다. 나는 그 텍스트가 서로의 최대 거리가되어야한다는 것을 의미하지 않으며, 가능한 한 최선을 다해 공간을 채우기를 원한다.

예 :

나는 다음과 같은 배열이 있습니다

var array = new [] {"#WhatIDidLastWeek", "Salena Gomez", "#WWF", "#IThinkOomf", "CES" }; 

을하고 나는 그 원 안에 있어야하고 충분히 아파트 간격 할 것을 array의 모든 문자열을 원하는 반경 600px의 원이 그것들은 겹치지 않으며 원의 일반적인 모양이 명백하다는 것을 의미합니다.

+0

어떤 디스플레이 기술을 사용하고 있습니까? WPF? WinForms? 너 그냥 이미지를 토하고 있니? – RQDQ

+0

글쎄, 지금은 xy에 대해 걱정하고있다. 그리고 나는 그것을 어떤 시각 으로든 전달할 것이다. 이 라이브러리는 WPF에서 ASP.net에 이르기까지 모든 기능을 지원합니다. –

+0

btw - Justin Bieber에 대한 참조가 필요합니다. RQDQ

답변

1

가장 먼저 떠오르는 것은 MeasureString과 같은 종류의 작업을 사용하는 것입니다.

기본 아이디어는 각 단어가 할당 된 공간에 맞는지 확인하는 것입니다. 맞지 않으면 다음 "줄"로 이동하십시오. 어려운 부분은 모든 단어를 맞추기 위해 공간이 부족할 때해야 할 일입니다.

관련 문제