dm-script

How can I use the top right corner of an annotation as the positioning anchor?


I'm adding annotations to an image and need to adjust the positioning anchor to the top right corner of the annotation. Currently, I know how to use the top left corner as the anchor, but after trying various commands, I haven't been able to achieve the same with the top right corner.

Has anyone successfully set the annotation's positioning anchor to the top right corner, or can provide guidance or examples on how to do so?

Any help would be greatly appreciated!


Solution

  • The best way to arrange annotations is to use the three commands:

    For your specific question, you would want to use the 3nd command. You specify the point of the annotation using rel_x and rel_y. (1,0) would be the top-right corner. Then you specify the coordinates to which this point should be moved as new_x and new_y. The two remaining Boolean parameters are used to limit the movement to horizontal or vertical only.

    See this example:

    image test := RealImage("Test",4,1000,1000) = icol
    test.ShowImage()
    imageDisplay disp = test.ImageGetImageDisplay(0)
    component rectAnno = NewBoxAnnotation(200,200,800,800)
    rectAnno.ComponentSetBackgroundColor(1,0,0)
    rectAnno.ComponentSetForegroundColor(0,1,0)
    rectAnno.ComponentSetDrawingMode(1)
    rectAnno.ComponentSetFillMode(1)
    disp.ComponentAddChildAtEnd( rectAnno )
    
    // Example of shifting the top-right corner of the annotation
    // to the top-right corner of the image and offset -5/-5
    OKDialog("Now Shift")
    number TRUE = 1
    number FALSE = 0
    rectAnno.ComponentPositionAroundPoint(995,5,1,0,TRUE, TRUE)
    

    The F1 help documentation has another useful example script here: Help

    The meaning of the location control point is found in the F1 documentation here: Control points