DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jsuguo
今日帖子: 28
在线用户: 24
导航: 论坛 -> 论坛精华贴 斑竹:liumazi,iamdream  
作者:
男 YueJun_98 (YueJun_98) ★☆☆☆☆ -
盒子活跃会员
2004/8/16 14:46:01
标题:
看看吧!应该很简单。 浏览:5346
加入我的收藏
楼主: 求画波浪线的画法!
----------------------------------------------
-
作者:
男 meng69 (meng69) ★☆☆☆☆ -
盒子活跃会员
2004/8/16 16:02:09
1楼: 用cos函数求出点

----------------------------------------------
-
作者:
男 YueJun_98 (YueJun_98) ★☆☆☆☆ -
盒子活跃会员
2004/8/16 16:10:31
2楼: 能具体点吗?
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/8/16 16:30:07
3楼: procedure TForm1.Button1Click(Sender: TObject);
var
 v:real;
 n,y1,x1,i,
 x0,y0:integer;
begin
for i:=20 to 220 do
 begin//1
   form1.Canvas.Pixels [40,i]:=clred;
 end;//1
 for i:=20 to 500 do
 begin//1
   form1.Canvas.Pixels [i,120]:=clred;
 end;//1
 x0:=40;
 y0:=120;
 for n:=0 to 400 do
 begin//1
   v:=sin((2*pi*n)/200);
   y1:=round(y0-v*30);
   x1:=x0+n;
   form1.Canvas.Pixels [x1,y1]:=clblue;
 end;//1
end;
此帖子包含附件:
JPEG 图像
大小:47.2K
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 YueJun_98 (YueJun_98) ★☆☆☆☆ -
盒子活跃会员
2004/8/16 16:35:33
4楼: 任意角度的呢?谢谢!
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/8/16 16:42:26
5楼: 坐标 任意还是 SIN任意角度 具体问题要自己解决 难道 考试 都要别人帮你考吗
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 YueJun_98 (YueJun_98) ★☆☆☆☆ -
盒子活跃会员
2004/8/16 17:10:50
6楼: 在窗体上任意点两点,在它们之间用波浪线连起来!
谢谢!我是真的不懂!
----------------------------------------------
-
作者:
男 meng69 (meng69) ★☆☆☆☆ -
盒子活跃会员
2004/8/16 17:33:12
7楼: 坐标旋转而已.
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/8/16 17:33:40
7楼: 等 等现在有点忙 得想想
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/8/16 17:38:37
8楼: 难就难在终点上
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 YueJun_98 (YueJun_98) ★☆☆☆☆ -
盒子活跃会员
2004/8/16 17:43:52
9楼: 恩,能解决吗?谢谢!
to:meng69 ,你能解决吗?谢谢!
----------------------------------------------
-
作者:
男 meng69 (meng69) ★☆☆☆☆ -
盒子活跃会员
2004/8/16 18:06:11
10楼: 下班了,明天给你好吗?
----------------------------------------------
-
作者:
男 YueJun_98 (YueJun_98) ★☆☆☆☆ -
盒子活跃会员
2004/8/16 18:10:34
11楼: 好的,谢谢!
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/8/17 9:24:55
12楼: 呵呵应该会做了吧 偶昨晚看了看 发现坐标转换挺麻烦 只看看 就不写 受不了
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 meng69 (meng69) ★☆☆☆☆ -
盒子活跃会员
2004/8/17 12:07:30
13楼: 看奥运真辛苦,让你久等了,程序需要如下:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,math, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure DrawWaveline(x1,y1,x2,y2:integer);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.DrawWaveline(x1, y1, x2, y2: integer);
var
     Len,Cnt,DrawX,DrawY:integer;
     MaxY,Angle,Dangle:double;

     function CalcLen(x1,y1,x2,y2:integer):integer;
     begin
          Result:=trunc(sqrt(Power(x1-x2,2)+power(y1-y2,2)));
     end;

     procedure CalcXY(x,y:integer;Angle:double;var ratioX,ratioY:integer);
     begin
          ratioX:=x1+trunc(CalcLen(x1,y1,x,y)*cos(Angle));
          ratioY:=y1+trunc(CalcLen(x1,y1,x,y)*sin(Angle));
     end;


begin
     Len:=CalcLen(x1,y1,x2,y2);
     self.Canvas.MoveTo(x1,y1);
     self.Canvas.LineTo(x2,y2);
     self.Canvas.MoveTo(x1,y1);
     self.Canvas.Pen.Color:=clRed;
     if x2-x1=0 then
          angle:=pi/2
     else
          angle:=arctan2(y2-y1,x2-x1);
     MaxY:=Len /20;
     for Cnt:=0 to Len-1 do begin
       DrawY:=Y1+trunc(sin(pi*Cnt/(MaxY*2))*MaxY);
       DrawX:=x1+cnt;
       if Drawx-x1=0 then
          Dangle:=pi/2
     else
          Dangle:=arctan2(DrawY-y1,DrawX-x1);
       CalcXY(DrawX,DrawY,Dangle+angle,DrawX,DrawY);
       LineTo(self.Canvas.Handle,DrawX,DrawY);
     end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  self.DrawWaveline(20,100,220,180);
end;

end.

----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/8/17 12:24:22
14楼: good
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 YueJun_98 (YueJun_98) ★☆☆☆☆ -
盒子活跃会员
2004/8/17 12:28:17
15楼:   谢谢!小弟对二位的景仰犹如滔滔江水,连绵不绝。
以后请二位多多指教,再次的谢谢!
----------------------------------------------
-
作者:
男 meng69 (meng69) ★☆☆☆☆ -
盒子活跃会员
2004/8/17 12:29:03
15楼: 按此在新窗口浏览图片 按此在新窗口浏览图片
----------------------------------------------
-
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/7/9 22:51:31
17楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 seowhy123456 (seowhy123456) ▲▲▲▲▲ -
禁用账号
2011/8/10 22:16:54
18楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
作者:
女 likediy520 (likediy520) ▲▲▲▲▲ -
禁用账号
2011/8/27 17:10:07
19楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,禁用帐号!
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行617.1875毫秒 RSS