Find Jobs
Hire Freelancers

Delphi World to Canvas map rendering

$30-250 USD

完了済み
投稿日: 11年近く前

$30-250 USD

完了時にお支払い
Hello! I have a rather simple project for all the smart brains on here. What I need is a translatable and zoomable implementation of a worldmap, with support for background texturing, written in Delphi. It should be very lightweight (not consume loads of CPU). It should have the ability to resize the map canvas if the window resizes. I have data about entities (location, rotation, scale). I also have a background texture. Map center should by default base on own position, which gets passed to map also (see below). By default I mean that map should be rendered with this point in middle, unless user decides to translate the viewpoint. The should be able to render the background (the actual "map"), and place entities on this background. This should then be : ---Translatable--- -The user must be able to use the mouse to drag around the contents, while the entities remain at their positions (like google maps). ---Zoomable--- -The user must be able to zoom into the map (nearer to the map texture), while the entities behave mathematically correct (a.k.a change their position on canvas in accordance of zoom level). This also is pretty much what google maps does. Zoom should be as smooth as possible, with many zoom levels. For development purposes, it's sufficient to draw squares of a color you choose for each added entity - this I will change later on. Please write the code that does the World to Canvas coordinate conversion into a private method, so I can easily use this method to add new items for rendering later on. The project should be written using the Graphics32 libary, as it is far faster then the native canvas implementation. You can find this library here : [login to view URL] As a summary, these methods should in some form be implemented : [login to view URL](canvasWidth,canvasHeight); //Set the render canvas size. This will be called on form resize event. [login to view URL](zoomLevel : integer); //This sets the zoom level. It should be as smooth as possible, with many zoom levels. [login to view URL] (unknown parameters) //This method gets called if user translates ("drags" around map. You'll probably want to use the onMouseUp/Down events?) [login to view URL] (x,y,z : single); //Location of self, map should base on this point. These coordinates are in the same coordinate system the entity ones are in (world coordinates). [login to view URL](x,y,z, rotation, scale : single); //Adds an entity to the map. Rotation is number between 1-128, scale 1.0 - 10.0. [login to view URL]( pic : TPicture); //This sets backround texture for map. Should be able to support all TPicture formats (JPEG, BMP, etc). backround can of course be larger then rendersize - map must cut it to fit the rendersize and zoomlevel then. [login to view URL](); //Renders a bitmap of size (canvasWidth,canvasHeight) internally. This implements doublebuffering. [login to view URL]( c : TCanvas); //Draws internally rendered image on this passed Canvas. The internal image was drawn by [login to view URL](); (see above). As you can see, please use the OOP paradigm for this project. If you can, please comment on the mathematical code - I tried this myself many times, but failed at synchronizing map texture and entity zoom levels. If you want to have my code as a reference, please say so. If you have any more questions, please do not hesitate to contact me and ask! I will be online most of the time. Cheers!
プロジェクト ID: 4690271

プロジェクトについて

2個の提案
リモートプロジェクト
アクティブ 11年前

お金を稼ぎたいですか?

Freelancerで入札する利点

予算と期間を設定してください
仕事で報酬を得る
提案をご説明ください
登録して仕事に入札するのは無料です
アワード者:
ユーザーアバター
I think i can do it. Details - PMB.
$111 USD 7日以内
0.0 (0 レビュー)
0.0
0.0
この仕事に2人のフリーランサーが、平均$306 USDで入札しています
ユーザーアバター
Can do it no problem!
$500 USD 30日以内
4.2 (5 レビュー)
4.2
4.2

クライアントについて

GERMANYのフラグ
Berlin, Germany
4.9
5
お支払い方法確認済み
メンバー登録日:6月 7, 2011

クライアント確認

ありがとうございます!無料クレジットを受け取るリンクをメールしました。
メールを送信中に問題が発生しました。もう一度お試しください。
登録ユーザー 投稿された仕事の合計
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
プレビューを読み込み中
位置情報へのアクセスが許可されました。
あなたのログインセッションの有効期限がきれ、ログアウトされました。もう一度ログインしてください。