我正在一個應用程序,我顯示不支持(通過XCode)文件格式)。所以我已將子類別NSBitmapImageRep
顯示在NSImaageView
的子類中。我已將它設置爲按比例縮放(向上或向下)。現在我需要添加一個可能性來獲取位圖中像素的座標。所以我ovveride鼠標按下:方法:在NSImageView中獲取位圖座標mouseDown座標
- (void)mouseDown:(NSEvent *)theEvent
{
NSLog(@"mouseDown: %ld", [theEvent clickCount]);
NSPoint point = [theEvent locationInWindow];
NSLog(@"point x: %f and y: %f", point.x, point.y);
}
越來越NSPoint後,我應該嘗試將其轉換爲負責協調的位圖,但首先我不知道如何解決locationInWindow返回NSImageView
的NSPoint
問題,而不是在NSImageView
中的位置非常小且沒有使用邊距的位圖,但是我可以點擊邊距並且mouseDown事件返回該邊距中的NSPoint
。你知道我應該做什麼嗎?
謝謝你的回答,但我認爲這項任務不會那麼複雜。請更詳細地解釋我是什麼意思「得到矩陣的逆矩陣」。也許有第三方庫來逐像素地管理圖像(當然,獲得它們在mouseDown上的座標)?你知道任何? – zioolek
如果您有一個變換矩陣,它將座標從一個空間轉換到另一個空間。矩陣的逆矩陣將它們轉換回來。但在這種情況下,您不需要使用完整的矩陣。你只需要縮放和翻譯。如果您的比例尺和平移向一個方向進行,只需反轉比例尺並減去平移量即可沿另一個方向進行。 – user1118321
謝謝。我正在研究它,並認爲它會起作用。順便說一句,locationInWindow方法返回NSPoint對象在相關窗口的基本座標系中,而不是NSImageView(這是在文檔中,但我在第一時間沒有意識到)。再一次 - 謝謝! – zioolek