Android 画直线并实现拖动】的更多相关文章

自定义View,在onDraw()方法中绘制一条直线,在onTouch()方法中监听手指的移动. public class AroundDragView extends View implements View.OnTouchListener { private static final String TAG = "ImageLight"; protected int screenWidth; protected int screenHeight; protected int last…
代码地址如下:http://www.demodashi.com/demo/14754.html 前言 之前讲过Paint和Canvas的基本使用,今天来介绍下Path的使用 涉及内容有: Path画直线路径 Path画弧线路径 PathView引用说明 项目结构图和效果图 一. Path画直线路径 Path画直线路径的步骤分三步: 第一步:设置path的起点,代码如下: path.moveTo(float x,float y);//设置path的起点 第二步:设置下一个路径点,代码如下: pat…
开发环境: VC++6.0,OpenGL 实验内容: 使用改进的Bresenham算法画直线. 实验结果: 代码: //中点Bresenham算法生成直线 #include <gl/glut.h> #include <math.h> #define WIDTH 500 //窗口宽度 #define HEIGHT 500 //窗口高度 #define DRAWLINE ProBresenham(100,100,400,400); //画直线 #pragma comment(linke…
开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画直线. 实验结果: 代码: //中点Bresenham算法生成直线 #include <gl/glut.h> #include <math.h> #define WIDTH 500 //窗口宽度 #define HEIGHT 500 //窗口高度 #define DRAWLINE1 MidpointBresenham(100,200,200,100); //画直线 #define DRAWLINE…
开发环境: VC++6.0,OpenGL 实验内容: 使用DDA算法画直线. 实验结果: 代码: #include <gl/glut.h> #include <math.h> #define WIDTH 500 //窗口宽度 #define HEIGHT 500 //窗口高度 #define DRAWLINE1 DDALine(100,200,200,100); //画直线 #define DRAWLINE2 DDALine(200,100,450,400); //画直线 #pra…
function DrawLineBresenham(x1,y1,x2,y2) %sort by x,sure x1<x2. if x1>x2 tmp=x1; x1=x2; x2=tmp; tmp=y1; y1=y2; y2=tmp; end dx=x2-x1; dy=y2-y1; twoDy=2*dy; twoDy_Dx=2*(dy-dx); twoDx=2*dx; twoDx_Dy=2*(dx-dy); twoDxPlusDy=2*(dx+dy); %branch 1: k>0 ?…
// HDC画直线 CPoint m_ptOrigin ; void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) { m_ptOrigin = point; CView::OnLButtonDown(nFlags, point); } void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { HDC hdc; hdc = ::GetDC(m_hWnd); MoveToEx(hdc,…
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961685 画图工具 1.     画直线 Ø  增加‘直线’菜单项,建立类向导: Ø  对CXXXXXXView类增加成员变量my_draw_flag.并在构造函数中初始化为0 Ø  在‘直线’菜单项处理函数中,将my_draw_flag=1:表示画直线 Ø  增加window消息处理,WM_LBUTTONDOWN 和WM_MOUSEMOVE和WM_LBUTTONUP Ø  增加成员变量 在构…
title: "Python使用DDA算法和中点Bresenham算法画直线" date: 2018-06-11T19:28:02+08:00 tags: ["图形学"] categories: ["Python"] 先上效果图 代码 #!/usr/bin/env python # coding=utf-8 from pylab import * from matplotlib.ticker import MultipleLocator impo…
画布 1.添加canvas标签  可以通过CSS或者JS来设置canvs标签的width,height;Ps: <canvas id="cvs"></canvas> 2.Css设置canvs的width,height; #cvs { position: absolute; top: 10px; left: 10px; width: 355px; height: 647px; border: 2px dashed green; } 3.通过JS设置width,he…
现在的计算机的图像的都是用像素表示的,无论是点.直线.圆或其他图形最终都会以点的形式显示.人们看到屏幕的直线只不过是模拟出来的,人眼不能分辨出来而已.那么计算机是如何画直线的呢,其实有比较多的算法,这里讲的是Bresenham的算法,是光栅化的画直线算法.直线光栅化是指用像素点来模拟直线,比如下图用蓝色的像素点来模拟红色的直线. 给定两个点起点P1(x1, y1), P2(x2, y2),如何画它们直连的直线呢,即是如何得到上图所示的蓝色的点.假设直线的斜率0<k>0,直线在第一象限,Bres…
Bresenham直线算法是用来描绘由两点所决定的直线的算法,它会算出一条线段在 n 维光栅上最接近的点.这个算法只会用到较为快速的整数加法.减法和位元移位,常用于绘制电脑画面中的直线.是计算机图形学中最先发展出来的算法. 经过少量的延伸之后,原本用来画直线的算法也可用来画圆.且同样可用较简单的算术运算来完成,避免了计算二次方程式或三角函数,或递归地分解为较简单的步骤. 基本算法思想 Bresenham直线算法描绘的直线.假设我们需要由 (x1, y1) 这一点,绘画一直线至右上角的另一点(x2…
线段长度无限短后就成为点,所以,现在让我们用画直线的方法来画正弦曲线吧 #include <SDL.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "SDL_draw.h" //包含SDL_draw库的头文件 int main() { int i; double t; double x,y; , y0=; Uint32 screen_color;…
今天正式开一本新书,<C# GDI+ 破镜之道>,同样是破镜之道系列丛书的一分子. 关于GDI+呢,官方的解释是这样的: GDI+ 是 Microsoft Windows 操作系统的窗体子系统应用程序编程接口 (API). GDI+ 是负责在屏幕和打印机上显示的信息. 顾名思义,GDI+ 是包含 GDI 与早期版本的 Windows 图形设备接口的后续版本. 好,两个关键信息: 窗体子系统应用的编程接口 图形设备接口 充分说明了GDI+的应用场景与用途.需要了解更多呢,就去查阅一下吧. 本书的…
C#Winfrom实现Skyline画直线功能 前言: 这里记录了我在学习Skyline二次开发中所遇到的问题,适合刚接触Skyline二次开发的同学查看使用,从逻辑到代码逐一详解,但是还是重在理解,希望对你有所帮助. 1.画线的逻辑: 让我回到TerraExplorer Pro这个软件中尝试画一条线,从每一步操作去发现,到底发生了什么? 1.鼠标左键在3D窗口中选择一个点(确定第一个点的位置). 2.挪动鼠标,在第二个点单击鼠标左键(确定第二个点的位置). 3.按住鼠标左键不放,在3D窗口中挪…
import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphi…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-…
1.画虚线,实线: 建立dotted_line_gray.xml文件放在drawable文件夹下面. android:shape="line" 可以修改你想要的形状 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=&quo…
PS:将来的你会感谢现在奋斗的自己.... 学习内容: 1.进度条 2.拖动条 3.星级评论条 1.进度条...       进图条这东西想必大家是很熟悉的...为了使用户不会觉得应用程序死掉了,因此为之设置一个进度条使应用程序的运行状态更好的反馈给客户...这也就是进度条的作用...因此一般的应用程序都会加入进度条...进度条分为圆形进度条和线性的进度条...目的都是一样的,只是展示的效果是不同的...用代码讲解一下... <LinearLayout xmlns:android="htt…
进度条: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ProgressBar 默认进度条 andr…
package com.yesway.ycarplus.view; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.DashPathEffect; import android.graphics.Paint; import and…
 以下样例为用canvas标签画多条直线 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht…
1.Android中很多时候都要自己去画一个自定义控件出来,就需要用到Paint和Canvas这两个类. 2.效果图:…
http://blog.csdn.net/yexiaozi_007/article/details/7978620 以画xyz坐标轴为例,很多人会遇到用glcolor设置了颜色,但是直线画出来还是黑色或者白色的情况,这可能是因为没有打开GL_COLOR_MATERIAL,或者没有关闭GL_TEXTURE_2D glEnable(GL_DEPTH_TEST); glLineWidth(3.0f); glEnable(GL_COLOR_MATERIAL); float axes_length = 0…
拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如调节音量等. 书中的例子: MainActivity.java package cn.lixyz.seekbartest; import android.app.Activity; import android.support.v7.app.AppCompatActivity; import android.…
#include "stdafx.h" #include <GL/glut.h> #include <stdlib.h> #include <math.h> #include <stdio.h> using namespace std; void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT); //glRectf(-0.5f, -0.5f, 0.5f, 0.5f); glBegin(GL_LI…
<View android:layout_width="match_parent" android:layout_height="1px" android:background="@color/black_90"></View>…
1.今天就来模仿一下这个小闹钟的 2.思路: 先画闹钟的圆盘 ,在通过Path来画指针 两个耳朵其实就是用两个圆被一个大圆截取后留下的,并旋转一定度数后生成 3.直接上代码: public class AlarmClockView extends View { private static final PorterDuff.Mode MODE = PorterDuff.Mode.DST_OUT; /** * 屏幕适应性参数 */ private static final float BIG_RA…
1.无意看到了一个指南针的UI,在这里简单的模仿了一下.其实就是第画布的一些变化而已. 别人的效果图是: 3.简单说一下思路: 1)首先是画一个黑色圆盘 2) 然后画圆盘上的刻度(就是对Canvas一些变换) 3) 文字添加 4.直接上代码: public class CompassView extends View { private Paint circlePaint, tickPaint; private TextPaint textPaint; // 指定控件宽和高,用于自适应 priv…
参考:http://blog.csdn.net/zhao2017/article/details/73866460 1.在Android中写横虚线比较简单,写竖虚线的话稍微麻烦点: 需要将写的虚线旋转: 这里面旋转角度设置为90 到90. <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="90" android:toDegrees=&q…