AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Erkennen, ob ein Punkt zu einem Font dazu gehört
Thema durchsuchen
Ansicht
Themen-Optionen

Erkennen, ob ein Punkt zu einem Font dazu gehört

Ein Thema von BlackJack · begonnen am 7. Aug 2005 · letzter Beitrag vom 8. Aug 2005
 
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#15

Re: Erkennen, ob ein Punkt zu einem Font dazu gehört

  Alt 8. Aug 2005, 14:30
@xaromz: danke für den Code, aber irgendwie bekomme ich damit auch keine runden kurven hin, sondern zu wieder pixelmäßig gerasterte. kannst ja mal selber diesen Beispielcode testen:
Delphi-Quellcode:
function TForm1.IsInChar(C: Char; X, Y: Double): Boolean;
var
  Region: HRGN;
begin
  BeginPath(Canvas.Handle);
  TextOut(Canvas.Handle, 0, 0, @C, 1);
  EndPath(Canvas.Handle);
  Region := PathToRegion(Canvas.Handle);
  Result := PtInRegion(Region, Trunc(X*Canvas.TextWidth(C)), Trunc(Y*Canvas.TextHeight(C)));

  DeleteObject(Region);
end;

procedure TForm1.Button1Click(Sender: TObject);
var x, y: Integer;
begin
  for y := 0 to ClientHeight-1 do
    for x := 0 to ClientWidth-1 do
      if IsInChar('A', x/ClientWidth, y/ClientHeight) then
        Canvas.Pixels[x,y] := clBlack
      else
        Canvas.Pixels[x,y] := clWhite;
end;
mich würde eher dieses GetGlyphOutline interessieren, damit kann ich mir ja die splines holen. wenn ich dann aber PtInRegion benutze, muss ich ja immer einen Canvas angeben, in den die Splines gezeichnet werden müssen, und schon habe ich wieder die gleichen kanten wie oben in dem code. bleibt mir da also nicht anderes übrig, als selber die splines zu untersuchen, oder gibt es auch Region-funtionen, die direkt mit den Splines arbeiten, ohne diese zu zeichnen? (hab da bisher nichts in der Richtung entdeckt).

oder ginge soetwas mit den Path-functions? bei denen habe ich allerdings nirgendwo so etwas wie PtInside oder so entdecken können.

@negaH:
ok, 300 stellen genauigkeit hat man nicht immer, das ist klar. aber lass uns diese diskussion hier beenden, das bringt nichts. wie gesagt, mir geht es darum Float-koordianten anzugeben (wie ich sie ja auch bei Path-functions haben müsste?)

edit: noch ne frage: wie kann ich eigentlich diese Path-functions dann letztendlich nutzen? so wie ich das in der Hilfe sehe ist das doch ne C++-Klasse, oder?
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz