# C1.Util.DX.Direct2D.Geometry.ComputePointAtLength

## Content

<div class="doc-site-dotnet-api-container">



<h1 id="C1_Util_DX_Direct2D_Geometry_ComputePointAtLength_" data-uid="C1.Util.DX.Direct2D.Geometry.ComputePointAtLength*">ComputePointAtLength Method
</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>



<a id="C1_Util_DX_Direct2D_Geometry_ComputePointAtLength_" data-uid="C1.Util.DX.Direct2D.Geometry.ComputePointAtLength*"></a>
<h4 id="C1_Util_DX_Direct2D_Geometry_ComputePointAtLength_System_Single_C1_Util_DX_Point2F__" data-uid="C1.Util.DX.Direct2D.Geometry.ComputePointAtLength(System.Single,C1.Util.DX.Point2F@)">ComputePointAtLength(float, out Point2F)</h4>
<div class="markdown level1 summary"><p>Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">public Point2F ComputePointAtLength(float length, out Point2F unitTangentVector)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Public Function ComputePointAtLength(length As Single, ByRef unitTangentVector As Point2F) As Point2F</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.single">float</a></td>
      <td><span class="parametername">length</span></td>
      <td><p>The distance along the geometry of the point and tangent to find. If this distance is less then 0, this method calculates the first point in the geometry. If this distance is greater than the length of the geometry, this method calculates the last point in the geometry.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Point2F.html">Point2F</a></td>
      <td><span class="parametername">unitTangentVector</span></td>
      <td><p>Whenthis method returns, contains a reference to the tangent vector at the specified distance along the geometry. If the geometry is empty,  this vector contains NaN as its x and y values. You must allocate storage for this parameter.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Point2F.html">Point2F</a></td>
      <td><p>The location at the specified distance along the geometry. If the geometry is empty,  this point contains NaN as its x and y values.</p>
</td>
    </tr>
  </tbody>
</table>


<a id="C1_Util_DX_Direct2D_Geometry_ComputePointAtLength_" data-uid="C1.Util.DX.Direct2D.Geometry.ComputePointAtLength*"></a>
<h4 id="C1_Util_DX_Direct2D_Geometry_ComputePointAtLength_System_Single_System_Single_C1_Util_DX_Point2F__" data-uid="C1.Util.DX.Direct2D.Geometry.ComputePointAtLength(System.Single,System.Single,C1.Util.DX.Point2F@)">ComputePointAtLength(float, float, out Point2F)</h4>
<div class="markdown level1 summary"><p>Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">public Point2F ComputePointAtLength(float length, float flatteningTolerance, out Point2F unitTangentVector)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Public Function ComputePointAtLength(length As Single, flatteningTolerance As Single, ByRef unitTangentVector As Point2F) As Point2F</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.single">float</a></td>
      <td><span class="parametername">length</span></td>
      <td><p>The distance along the geometry of the point and tangent to find. If this distance is less then 0, this method calculates the first point in the geometry. If this distance is greater than the length of the geometry, this method calculates the last point in the geometry.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.single">float</a></td>
      <td><span class="parametername">flatteningTolerance</span></td>
      <td><p>The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Point2F.html">Point2F</a></td>
      <td><span class="parametername">unitTangentVector</span></td>
      <td><p>Whenthis method returns, contains a reference to the tangent vector at the specified distance along the geometry. If the geometry is empty,  this vector contains NaN as its x and y values. You must allocate storage for this parameter.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Point2F.html">Point2F</a></td>
      <td><p>The location at the specified distance along the geometry. If the geometry is empty,  this point contains NaN as its x and y values.</p>
</td>
    </tr>
  </tbody>
</table>


<a id="C1_Util_DX_Direct2D_Geometry_ComputePointAtLength_" data-uid="C1.Util.DX.Direct2D.Geometry.ComputePointAtLength*"></a>
<h4 id="C1_Util_DX_Direct2D_Geometry_ComputePointAtLength_System_Single_System_Nullable_C1_Util_DX_Matrix3x2__System_Single_C1_Util_DX_Point2F__" data-uid="C1.Util.DX.Direct2D.Geometry.ComputePointAtLength(System.Single,System.Nullable{C1.Util.DX.Matrix3x2},System.Single,C1.Util.DX.Point2F@)">ComputePointAtLength(float, Matrix3x2?, float, out Point2F)</h4>
<div class="markdown level1 summary"><p>HRESULT ID2D1Geometry::ComputePointAtLength([In] float length,[In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[Out, Optional] D2D_POINT_2F* point,[Out, Optional] D2D_POINT_2F* unitTangentVector)</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">public Point2F ComputePointAtLength(float length, Matrix3x2? worldTransform, float flatteningTolerance, out Point2F unitTangentVector)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Public Function ComputePointAtLength(length As Single, worldTransform As Matrix3x2?, flatteningTolerance As Single, ByRef unitTangentVector As Point2F) As Point2F</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.single">float</a></td>
      <td><span class="parametername">length</span></td>
      <td></td>
    </tr>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Matrix3x2.html">Matrix3x2</a>?</td>
      <td><span class="parametername">worldTransform</span></td>
      <td></td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.single">float</a></td>
      <td><span class="parametername">flatteningTolerance</span></td>
      <td></td>
    </tr>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Point2F.html">Point2F</a></td>
      <td><span class="parametername">unitTangentVector</span></td>
      <td></td>
    </tr>
  </tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Point2F.html">Point2F</a></td>
      <td></td>
    </tr>
  </tbody>
</table>
</div>
