Aracılığıyla paylaş


ShapeElement.DoFoldToShape Yöntem

Burada bir bağlayıcı bir şeklin çevre dokunmatik noktayı hesaplar.Dikdörtgen olmayan bir şekilde tanımlarsanız, bu geçersiz kılar.

Ad alanı:  Microsoft.VisualStudio.Modeling.Diagrams
Derleme:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll içinde)

Sözdizimi

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

Parametreler

  • vectorEndpoint
    Tür: Microsoft.VisualStudio.Modeling.Diagrams.PointD
    Bağlayıcı yönü.Satıra göre başka bir noktaya potentialPoint.Yatay bir bağlayıcı için y ekseni her zaman 0 olacaktır ve dikey bağlayıcı bir x koordinatı her zaman 0.Koordinat, işareti şekilden ortasına yönünü gösterir rasgele bir değer olan potentialPoint.Düz bağlayıcı, oranı x için y çizgisinin eğimini verir ve değerlerine rasgele.

Dönüş Değeri

Tür: Microsoft.VisualStudio.Modeling.Diagrams.PointD
Nokta burada bağlayıcı sonlanmalıdır.

Notlar

Sınır noktasında bir şeklin bir bağlayıcı sonlandırılması belirlemek için bu yöntemi çağrılır.Dikdörtgen şekli için varsayılan değer olarak, şeklin sınırlayıcı kutuda noktası olacaktır.Ancak örneğin simge dikdörtgen değil bir simgesi şeklini olağandışı bir geometriye sahip olan şekli sınıfının tanımlarsanız, daha sonra bu varsayılan davranışı bir boşluk bağlayıcı Şeklinizin gerçek kenarı arasında kalabilir.Bu yöntem, bağlayıcı sonlanmalıdır Şeklinizin gerçek noktası kenardan hesaplamak için geçersiz kılabilirsiniz.

Fold to shape

Örnekler

Bu örnekte, yazar simgesi şeklini dsl tanımında belirtilen ve eliptik bir anahat içinde resmin bulunduğu bir simge sağlar.Varsayılan olarak, bağlayıcılar sınırlayıcı kutusunu sonlandırmak ancak sonlandırma noktası yan ortasında olmadığında bu yetersiz görünüyor.DoFoldToShape, bu nedenle bağlayıcı Elips burada çapraz hesaplamak.Neyse ki bir daire için bu görevi gerçekleştiren bir yardımcı program işlevi: Biz bizim lise geometri kitapları bulmak gerek yoktur.Biz girdileri faktörüyle çarpmadan ve çıktı aynı çarpanıyla bölünerek Elips için çalışması için yardımcı program işlevi uyarlayabilirsiniz.

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

.NET Framework Güvenliği

Ayrıca bkz.

Başvuru

ShapeElement Sınıf

Microsoft.VisualStudio.Modeling.Diagrams Ad Alanı