Results 1 to 5 of 5

Thread: berekenen zoom rond muis

  1. #1
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382

    berekenen zoom rond muis

    Na vele uren geprobeer doen mijn hersenen het niet meer. Dus zoek ik weer even mijn heil bij mensen wiens hersenen beter zijn :-)
    Ik heb een TMyControl die een geschaald image weergeeft (blauw). Het blauwe gedeelte is dus geschaald.
    Zie attached image.
    Nu wil ik bij muiswiel zoomen, zorgen dat het image exact rond de muis (rood) in- of uitzoomt.
    Wat betekent dat de pixel van het image dat onder de muispointer zit voor en na het zoomen gelijk is.
    Hieronder wat pseudocode.
    De offset (groen) kan dus ook negatief zijn.
    Degene die onderstaande functie CalcNewOffset kan schrijven, zal ik nooit vergeten.


    Code:
    function TMyControl.CalcNewOffset(mouse: TPoint; oldOffset: TPoint; oldScale, newScale: Single): TPoint;
    begin
      Result := NoClueYet;
    end;
    
    procedure TMyControl.Zoom(newScale: Single; mouse: TPoint);
    var
      oldOffset, newOffset: TPoint;
      oldScale: Single;
    begin
      oldScale := fScale;
      oldOffset := fOffset;
    
      newOffset := CalcNewOffset(mouse, oldOffset, oldScale, newScale);
    
      fScale := newScale:
      SetOffset(newOffset);
      Invalidate;
    end;
    Attached Thumbnails Attached Thumbnails Click image for larger version. 

Name:	puzzel.png 
Views:	72 
Size:	4.6 KB 
ID:	8127  
    Last edited by Anoniem; 12-Oct-20 at 23:13.

  2. #2
    Hallo,

    Is het ook de bedoeling dat de lengte/breedte verhouding constant blijft? Dat zie ik in bovenstaande figuur n.l. niet.

    H.G. Frans

  3. #3
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Het blauwe gedeelte is het image met 1 schaal. dus de lengte/breedte verhouding is altijd constant ja.

  4. #4
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    En misschien ten overvloede. Het blauwe gedeelte groeit en krimpt dus.

  5. #5
    Silly member NGLN's Avatar
    Join Date
    Aug 2004
    Location
    Werkendam
    Posts
    5,133
    Bedoel je zoiets? (Zie ook deze.)
    (Sender as TNLDUser).Signature := 'Groeten van Albert';

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •