Estou tendo um problema com anotações de seta no meu componente ImageDisplay. Quando crio anotações de seta sequencialmente, as coordenadas da seta estão corretas. No entanto, se eu primeiro criar um grupo de anotações e depois adicionar anotações de seta a esse grupo, as coordenadas da seta ficarão incorretas. Parece que o sistema de coordenadas do grupo de marcadores pode não corresponder ao sistema de coordenadas usado pelo ImageDisplay.
O que eu tentei:
- Gerar marcadores de seta um por um funciona conforme o esperado.
Image img := RealImage("RImg",4,256,256)
img.ShowImage()
ImageDisplay img_disp = img.ImageGetImageDisplay(0)
ImageDocument img_doc = img.ImageGetOrCreateImageDocument()
Number radius = 50
Number cx = 128
Number cy = 128
Number flag = 1
for (Number count = 0 ; count < 4 ; count++)
{
Number phi = count * 2 * Pi()/ 4
Number px = round(cx+radius*Cos(phi))
Number py = round(cy+radius*Sin(phi))
Component arrow = NewArrowAnnotation(cy, cx, py, px)
img_disp.ComponentAddChildAtEnd(arrow)
}
- Criar primeiro um grupo de marcadores e depois adicionar marcadores de seta resulta em coordenadas confusas.
Image img := RealImage("RImg",4,256,256)
img.ShowImage()
ImageDisplay img_disp = img.ImageGetImageDisplay(0)
ImageDocument img_doc = img.ImageGetOrCreateImageDocument()
Component arrows = NewGroupAnnotation()
Number radius = 50
Number cx = 128
Number cy = 128
for (Number count = 0 ; count < 4 ; count++)
{
Number phi = count * 2 * Pi()/ 4
Number px = round(cx+radius*Cos(phi))
Number py = round(cy+radius*Sin(phi))
Result(py + ", " + px + "\n")
Component arrow = NewArrowAnnotation(cy, cx, py, px)
arrows.ComponentAddChildAtEnd(arrow)
}
img_disp.ComponentAddChildAtEnd(arrows)
Questões:
- O que poderia causar a discrepância de coordenadas entre o grupo de marcadores e o ImageDisplay?
- Como posso garantir que o grupo de marcadores use o mesmo sistema de coordenadas do ImageDisplay ao adicionar marcadores de seta?