Sdílet prostřednictvím


ShapeElement.DoFoldToShape – metoda

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

Obor názvů:  Microsoft.VisualStudio.Modeling.Diagrams
Sestavení:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (v Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.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 na řádku na relativní 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 hodnoty, jejíž znaménko označuje směr obrazce z centra potentialPoint.Pro Přímá spojnice poměr x a y dává Sklon čáry a jejich hodnoty jsou libovolného.

Vrácená hodnota

Typ: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Bod, kde by měla ukončit spojnice.

Poznámky

Tato metoda se nazývá 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 bod bude ohraničovacího rámečku obrazce.Ale při definování třídy obrazce neobvyklé geometrie, například ikonu tvaru v němž není ikona obdélníkový, pak toto výchozí chování může ponechat mezeru mezi skutečné okrajem tvaru a spojnice.Tuto metodu k výpočtu skutečné bod na okraj tvaru, kdy měla ukončit spojnice můžete přepsat.

Přeložte do obrazce

Příklady

V tomto příkladu autor určil tvar ikony v definici DSL a dodává ikona, ve kterém byl obrázek eliptický osnovy.Standardně ukončit konektory na ohraničovací rámeček, ale to vypadá jako nevyhovující koncových bodů nejsou k dispozici ve středu strana.DoFoldToShape by proto vypočítat, kde budou spojnice mezi elipsy.Naštěstí je nástroj funkce, která provádí tento úkol pro kruh: jsme není potřeba najít naše škola geometrie knih.Nástroj funkce pracovat elipsu faktorem vstupy a vydělí výstup stejný faktor jsme lze přizpůsobit.

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ů