Udostępnij za pośrednictwem


Metoda ShapeElement.DoFoldToShape —

Oblicza punkt gdzie łącznika dotknie obwód kształtu.To zmienić po zdefiniowaniu — prostokątny kształt.

Przestrzeń nazw:  Microsoft.VisualStudio.Modeling.Diagrams
Zestaw:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (w Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

Składnia

'Deklaracja
Public Overridable Function DoFoldToShape ( _
    potentialPoint As PointD, _
    vectorEndpoint As PointD _
) As PointD
public virtual PointD DoFoldToShape(
    PointD potentialPoint,
    PointD vectorEndpoint
)

Parametry

  • vectorEndpoint
    Typ: Microsoft.VisualStudio.Modeling.Diagrams.PointD
    Kierunek łącznika.Inny punkt na linii, w stosunku do potentialPoint.Dla łącznikiem poziomym Współrzędna Y będzie zawsze równa 0, a dla łącznika pionowego X współrzędnych jest zawsze 0.Innych współrzędnych ma wartość dowolny znak, którego wskazuje kierunek środka kształtu z potentialPoint.Aby łącznik prostoliniowy stosunek X i Y daje nachylenie linii, a ich wartości są dowolne.

Wartość zwracana

Typ: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Punkt, w którym powinna kończyć się łącznik.

Uwagi

Metoda ta jest wywoływana w celu określenia punktu na krawędzi kształtu łącznika powinno zostać zakończone.Domyślnie do prostokątnego kształtu będzie punkt na obwiedni kształtu.Ale po zdefiniowaniu rodzaju kształt, który ma nietypowy geometrii, na przykład kształt ikony w którym ikona nie jest prostokątny, następnie to zachowanie domyślne może zachować odstęp między złącza i rzeczywistych krawędzi kształtu.Można zastąpić tę metodę, aby obliczyć rzeczywiste punktu na krawędzi kształtu, w którym powinna kończyć się łącznik.

Fold to shape

Przykłady

W tym przykładzie autor określił kształt ikony w definicji DSL i dostarcza ikoną, w którym obraz ma eliptyczne konspektu.Domyślnie łączniki kończyć się na obwiedni, ale wygląda to niezadowalające, gdy punktów końcowych nie są pośrodku strony.Dlatego DoFoldToShape należy obliczyć, gdzie przecinają złącza elipsy.Na szczęście istnieje funkcja narzędzie, które wykonuje to zadanie dla koła: nie musimy znaleźć naszych ksiąg geometrii szkoły średniej.Możemy dostosować funkcji narzędzia do pracy na elipsę przez pomnożenie przez współczynnik nakładów i podzielenie wyniku o taki sam współczynnik.

public partial class MyEllipticalIconShape
{
  public override PointD DoFoldToShape(PointD potentialPoint, PointD vectorEndpoint)
  {
    double width = this.Bounds.Width;
    double height = this.Bounds.Height;
    double k = width / height; // transform from ellipse to circle
    // This utility method folds to a circle. But we have an ellipse, so
    // we adjust the Y values of the inputs:
    PointD result = ShapeGeometry.SnapToCircle(
        new PointD(width / 2, width / 2), // center, relative to shape
        width / 2, // radius of circle
        new PointD(vectorEndpoint.X, vectorEndpoint.Y * k),
        new PointD(potentialPoint.X, potentialPoint.Y * k));
    // Transform the circular result back to the ellipse:
    return new PointD(result.X, result.Y / k); 
 }
}

Zabezpieczenia programu .NET Framework

Zobacz też

Informacje

ShapeElement Klasa

Przestrzeń nazw Microsoft.VisualStudio.Modeling.Diagrams