Как нарисовать вогнутый угловой прямоугольник в WPF? - PullRequest
3 голосов
/ 15 ноября 2008

Как нарисовать вогнутый угловой прямоугольник в WPF?

Ответы [ 3 ]

3 голосов
/ 16 ноября 2008

Вы можете создать это с помощью Path Operation в Expression Blend (Меню - Объект-> Path path). Я создал Path, вычитая четыре эллипса из прямоугольника.

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

alt text

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
2 голосов
/ 15 ноября 2008
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)

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

0 голосов
/ 16 ноября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...