如何划箭头!

BeCIO 2004-07-27 04:45:00
如何划箭头!
...全文
488 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
BeCIO 2004-08-04
  • 打赏
  • 举报
回复
謝謝﹐現在問題解決。加分
Hanson_bati_zhu 2004-08-02
  • 打赏
  • 举报
回复
你先看看
那个东东里面的功能不是很多
但基本的控制都有了
而且,能够画框多选什么的
试试看
希望对你能有帮助
BeCIO 2004-08-02
  • 打赏
  • 举报
回复
好的﹐我的MAIL上次有發信給你的信箱
同時發﹐比較保險。再次感謝.
china_3k@163.com 或 superchina3k@hotmail.com 或 ylf@supercap.com
Hanson_bati_zhu 2004-08-02
  • 打赏
  • 举报
回复
已发送,请查收

这个例子只是演示动态创建及对象关系维护
没有使用上次发给你的那个DLL,所以没有绘制箭头的功能,但有绘制连接线
你改造一下就能用了
试试看
Hanson_bati_zhu 2004-08-02
  • 打赏
  • 举报
回复
正好我前些日子作实验时作了一个很简单的小例子
功能就是在界面上动态放置对象,并建立对象间的连接
感觉像是PD,不过简单得多

你如果有兴趣,把Mail留下来,我发给你
BeCIO 2004-08-02
  • 打赏
  • 举报
回复
to: Hanson_bati_zhu(欺世盗名之徒)
楼主是不是要作一个绘制组织结构图或者业务流程图的类似VISIO的程序吧
不如用一个可视对象来作,这样动态生成对象也容易些

謝謝你這麼多天的關注與支持
我的確就是想用PB做這樣的東西﹐但實現起來太困難。
用可视对象如何作呢?是否有例子﹐或說說思路﹐還需要可以動態創建﹐保存的喲
wangxichen 2004-08-01
  • 打赏
  • 举报
回复
↑↑↑
Hanson_bati_zhu 2004-08-01
  • 打赏
  • 举报
回复
楼主是不是要作一个绘制组织结构图或者业务流程图的类似VISIO的程序吧
不如用一个可视对象来作,这样动态生成对象也容易些
BeCIO 2004-07-31
  • 打赏
  • 举报
回复
pbm_Paint為什麼在新開的DATAWINDOW中可以繪製﹐但我打開一個CREATE了得物件的DATAWINDOW時卻有觸發Paint事件﹐但不會繪製呢﹐而且在RESIZE窗體的時候箭頭也會消失
BeCIO 2004-07-31
  • 打赏
  • 举报
回复
slopy = atan2( ( m_One->y - m_Two->y ),( m_One->x - m_Two->x ) );
這條語句是什麼意思呀?
Hanson_bati_zhu 2004-07-30
  • 打赏
  • 举报
回复
我的MAIL: hstong@263.net
lzheng2001 2004-07-30
  • 打赏
  • 举报
回复
完全可以用纯PB实现,坐标的确定只是一个数学问题,不难计算!
BeCIO 2004-07-30
  • 打赏
  • 举报
回复
沒收到呀﹐你有什麼聯繫方式呀
我的QQ﹕53165283
liujiaqiang 2004-07-30
  • 打赏
  • 举报
回复
没有做过。不过应该用纯PB可以搞定的。
Hanson_bati_zhu 2004-07-30
  • 打赏
  • 举报
回复
试试看
在DW中,加入一个事件,事件ID为:pbm_Paint
然后,在这个事件中绘制箭头,这样,DW中如果有变化,就能够自动重绘了
BeCIO 2004-07-30
  • 打赏
  • 举报
回复
我是在DATAWINDOW中繪製﹐這樣話的箭頭如果一刷新就不見了。我會在DATAWINDOW中放一些其他控件﹐但當我一移動控件時﹐箭頭就不見了。這樣的話﹐不就意味着我要不停的重繪製箭頭嗎?
就象在動態報表中畫箭頭﹐怎麼解決呢?
Hanson_bati_zhu 2004-07-30
  • 打赏
  • 举报
回复
你记住线条的起始点、终止点位置
不就可以了么
BeCIO 2004-07-30
  • 打赏
  • 举报
回复
收到﹐謝謝﹐不過還想\問個問題﹐在PB中如果要保存的話﹐應該如何做
Hanson_bati_zhu 2004-07-30
  • 打赏
  • 举报
回复
to:china3k(中文)
已发送
请查收
BeCIO 2004-07-30
  • 打赏
  • 举报
回复
//計算線段的傾斜角度

If mX1 > mX2 Then
tAng1 = ATan((mY2 - mY1) / (mX2 - mX1))
ElseIf mX1 < mX2 Then
tAng1 = 3.14159 - ATan((mY2 - mY1) / (mX1 - mX2))
Else
If mY2 < mY1 Then
tAng1 = 3.14159 / 2
Else
tAng1 = 0 - 3.14159 / 2
End If
End If

//初始箭頭坐標
mArrowX1 = 1
mArrowY1 = 1
mArrowX2 = 1
mArrowY2 = -1

//計算旋轉後坐標
X1 = mArrowX1 * Cos(tAng1) + mArrowY1 * Sin(tAng1)
Y1 = -mArrowX1 * Sin(tAng1) + mArrowY1 * Cos(tAng1)

X2 = mArrowX2 * Cos(tAng1) + mArrowY2 * Sin(tAng1)
Y2 = -mArrowX2 * Sin(tAng1) + mArrowY2 * Cos(tAng1)

//加上偏移量

X1 += mX2
Y1 += mY2
X2 += mX2
Y2 += mY2



這是一段有問題的腳本﹐請大家指點一下。
其實現方法為初始一個< 箭頭
根據線段判定旋轉角度
利用公式求得旋轉後坐標
然後加上偏移量
但這裡面有問題﹐不知錯在那裡呀﹐請指點一下。
加载更多回复(22)

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧