(Leadtools.Annotations.Core)

フレームを表示

Calibrateメソッド






既知のソース長値
sourceLengthの単位
調整先の長さ。
destinationUnitの単位
ルーラー換算表を設定します。
構文
'Declaration
 
Public Sub Calibrate( _
   ByVal sourceLength As LeadLengthD, _
   ByVal sourceUnit As AnnUnit, _
   ByVal destinationLength As LeadLengthD, _
   ByVal destinationUnit As AnnUnit _
) 
-(void) calibrateSourceLength:(double) srcLen 
                   sourceUnit:(LTAnnUnit) srcUnit 
            destinationLength:(double) targetLen 
              destinationUnit:(LTAnnUnit) targetUnit;
            
public void calibrate(
   LeadLengthD sourceLength,
   AnnUnit sourceUnit,
   LeadLengthD destinationLength,
   AnnUnit destinationUnit
)
            
 function Leadtools.Annotations.Core.AnnContainerMapper.Calibrate( 
   sourceLength ,
   sourceUnit ,
   destinationLength ,
   destinationUnit 
)

パラメーター

sourceLength
既知のソース長値
sourceUnit
sourceLengthの単位
destinationLength
調整先の長さ。
destinationUnit
destinationUnitの単位
解説

このメソッドは、CalibrationScaleのために新しい値を計算するために、パラメータを使います。この値が、このコンテナで作成されるすべての既存のルーラーと新しいルーラーオブジェクトによってその後使われます。

ルーラーを較正することは、特定のlengthをそれに割り当てることを意味します。たとえば手のデジタルレントゲン写真で、いずれかの指に沿ってアノテーションルーラーオブジェクトを描画したとします。この距離が正確に6.5cmであるとされるということを知っています。このような場合は新しいルーラー調整機能を使用して、このルーラー、既存のすべてのルーラー、および新しく作成したすべてのルーラーがこの距離を正確に6.5cmと計測するように調整できます。そのためには、まず指の長さと正確に一致するルーラーをコンテナーに描画してから(表示される値は無視します)、以下のサンプルに示すように校正を使用します。

サンプル

以下のサンプルは、6.5cmであることが分かっている長さでルーラーを描画してから、校正を使用してマッパーの調整スケールを設定します。

Copy Code  
using Leadtools.Annotations.Automation;
using Leadtools.Annotations.Core;
using Leadtools.Codecs;

      
public void AnnContainerMapper_Calibrate()
{
   // Add a ruler with a length of 1 inch to the container
   AnnContainer container = new AnnContainer();
   double inch = 720;
   AnnPolyRulerObject rulerObj = new AnnPolyRulerObject();
   rulerObj.Points.Add(LeadPointD.Create(1 * inch, 1 * inch));
   rulerObj.Points.Add(LeadPointD.Create(2 * inch, 1 * inch));
   rulerObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Red"), LeadLengthD.Create(1));
   rulerObj.ShowGauge = true;
   rulerObj.ShowTickMarks = true;
   rulerObj.MeasurementUnit = AnnUnit.Inch;
   container.Children.Add(rulerObj);
   // Show the ruler
   Debug.WriteLine("Ruler to calibrate, length is 1 inch");

   // Get the length of the ruler
   LeadPointD point1 = rulerObj.Points[0];
   LeadPointD point2 = rulerObj.Points[1];
   double length = Math.Sqrt(Math.Pow(Math.Abs(point2.X - point1.X), 2) + Math.Pow(Math.Abs(point2.Y - point1.Y), 2));

   // Calibrate the container mapper
   container.Mapper.Calibrate(
      LeadLengthD.Create(length),   // Source length
      AnnUnit.Unit,                       // Source unit (container units)
      LeadLengthD.Create(6.5),      // Destination length
      AnnUnit.Centimeter);                // Destination unit 

   // Use the Centimeters as the measurement unit in the ruler
   rulerObj.MeasurementUnit = AnnUnit.Centimeter;

   // Now rulerObj should show 6.5 Centimeter as its length
   Debug.WriteLine("Calibrated, length is 6.5 cm");
}
using Leadtools.Converters;
using Leadtools.Annotations.Automation;
using Leadtools.Controls;
using Leadtools.Annotations.Core;
using Leadtools.Codecs;

      
public void AnnContainerMapper_Calibrate()
{
   // Add a ruler with a length of 1 inch to the container
   AnnContainer container = _automation.Container;
   double inch = 720;
   AnnPolyRulerObject rulerObj = new AnnPolyRulerObject();
   rulerObj.Points.Add(LeadPointDHelper.Create(1 * inch, 1 * inch));
   rulerObj.Points.Add(LeadPointDHelper.Create(2 * inch, 1 * inch));
   rulerObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Red"), LeadLengthDHelper.Create(1));
   rulerObj.ShowGauge = true;
   rulerObj.ShowTickMarks = true;
   rulerObj.MeasurementUnit = AnnUnit.Inch;
   container.Children.Add(rulerObj);
   // Show the ruler
   _automation.Invalidate(LeadRectDHelper.Empty);
   Debug.WriteLine("Ruler to calibrate, length is 1 inch");

   // Get the length of the ruler
   LeadPointD point1 = rulerObj.Points[0];
   LeadPointD point2 = rulerObj.Points[1];
   double length = Math.Sqrt(Math.Pow(Math.Abs(point2.X - point1.X), 2) + Math.Pow(Math.Abs(point2.Y - point1.Y), 2));

   // Calibrate the container mapper
   container.Mapper.Calibrate(
      LeadLengthDHelper.Create(length),   // Source length
      AnnUnit.Unit,                       // Source unit (container units)
      LeadLengthDHelper.Create(6.5),      // Destination length
      AnnUnit.Centimeter);                // Destination unit 

   // Use the Centimeters as the measurement unit in the ruler
   rulerObj.MeasurementUnit = AnnUnit.Centimeter;

   // Now rulerObj should show 6.5 Centimeter as its length
   _automation.Invalidate(LeadRectDHelper.Empty);
   Debug.WriteLine("Calibrated, length is 6.5 cm");
}
必要条件

ターゲットプラットホーム

参照

参照

AnnContainerMapperクラス
AnnContainerMapperメンバ

   Leadtools.Annotations.Coreは、DocumentまたはMedicalツールキットのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能