2008-11-15 4 views

ответ

2
do you mean a rectangle with concave corners?, ie: 
    ____________________ 
    |     | 
    __|     |__ 
|       | 
|       | 
|       | 
|__      __| 
    |     | 
    |____________________| 

Учитывая прямоугольник размерности w x h с угловым радиусом r Есть 4 угла:

A : 0,0 
B : w,0 
C : w,h 
D : 0,h 

Существует неявное минимальный размер

w = 2r 
h = 2r 

Там 4 центров окружностей, A,B,C,D

И есть, таким образом, сетка краевых точек:

(0,0)--(0+r,0)---(w-r,0)---(w,0) 
|        | 
(0,0+r)     (w,0+r) 
|        | 
|        | 
(0,h-r)     (w,h-r) 
|        | 
(0,h)--(0+r,h)---(w-r,h)---(w,h) 

Тогда его просто случай вычисления дуги из одной точки в другую.

3

Это можно создать с помощью операции «Путь» в разделе «Выражение» («Меню - Объект-> Путь»). Я создал Путь, вычитая четыре эллипса против прямоугольника.

Path.Data для вогнутого прямоугольника приведен ниже, логика @Kent Fredric в предыдущем ответе будет полезна для ее реализации.

alt text http://img87.imageshack.us/img87/4539/concaverectny1.jpg

M17.200002,0L120.4,0 120.4,2.3066998E-06C120.4,6.7378696,128.10079,12.200001,137.60001,12.200001L137.60001,85.400003C128.10077,85.400003,120.4,90.862138,120.4,97.6L17.200002,97.6C17.200002,90.862151,9.4993697,85.400003,0,85.400003L0,12.199999C9.4993663,12.200015,17.200002,6.7378725,17.200002,0z 

Смотрите блога пост здесь http://jobijoy.blogspot.com/2008/11/concave-cornered-rectangle-blend-tip.html

Другой способ, чтобы получить это, чтобы создать WPF пользовательской фигуры, как сильфона

public class ConcaveRectangle:System.Windows.Shapes.Shape 
+0

Спасибо, Я задал этот вопрос на другом форуме и получил то же решение, используя функцию Path в WPF. – 2008-11-20 19:53:56

0

Я должен отметить, что, если это вогнутые, четыре стороны не являются одинаковыми и прямыми; таким образом, это не прямоугольник. Но я отвлекся.

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