Sdílet prostřednictvím


ShapeElement.DoFoldToShape – metoda

Vypočte souřadnice bodu, kde spojnice budou dotýkat obvodu tvaru.Potlačit pokud definujete obdélníkový tvar.

Obor názvů:  Microsoft.VisualStudio.Modeling.Diagrams
Sestavení:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (v Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

Syntaxe

'Deklarace
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
    Směr spojnice.Jiný bod v řádku vzhledem k potentialPoint.Pro vodorovná spojnice souřadnici Y bude vždy 0 a svislou spojnici X souřadnice je vždy 0.Má jiné souřadnice libovolného hodnotu jejíž znaménko označuje směr do středu obrazce z potentialPoint.Přímá spojnice, poměr X a Y vám sklon řádku a jejich hodnoty jsou libovolné.

Vrácená hodnota

Typ: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Místo, kde by měla ukončit konektoru.

Poznámky

Tato metoda je volána k určení bodu na hranici, kdy by mělo být ukončeno spojnice obrazce.Ve výchozím nastavení obdélníkového tvaru bude bod na ohraničovacím rámečku obrazce.Ale pokud definujete třídu tvaru, který má neobvyklý geometrie, například ikonu obrazce ve kterém panel není pravoúhlý, pak toto výchozí chování může ponechat mezeru mezi konektoru a skutečné okraje tvaru.Můžete přepsat tuto metodu pro výpočet skutečné místo na okraj tvaru, kdy by měla ukončit konektoru.

Fold to shape

Příklady

V tomto příkladu autor má tvar ikonu podle definice DSL a dodává ikona, ve kterém má obrázek eliptického osnovy.Ve výchozím nastavení konektory ukončit na ohraničovací rámeček, ale to vypadá nevyhovující koncovými body nejsou uprostřed stranu.DoFoldToShape proto musí vypočítat, které protínají konektoru elipsy.Naštěstí je nástroj funkce, která provádí tento úkol pro kruh: potřebujeme není k nalezení knihách středoškolské geometrie.Můžeme se může přizpůsobit funkce nástroje pro elipsu vynásobením koeficientem vstupů a výstupu vydělí stejný faktor.

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); 
 }
}

Zabezpečení rozhraní .NET Framework

Viz také

Referenční dokumentace

ShapeElement Třída

Microsoft.VisualStudio.Modeling.Diagrams – obor názvů