좌표계, 삼각함수, 각변환 기본적인 내용.
닷넷 카페에 질문글이 올라왔는데...
답변을 하려니 ... 전에 만들어 두었던 것들을 찾기 쉽지 않아서...
그냥 새로 간단하게 만들어 올림.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
PointF origin = new PointF(200f, 200f);
float angle = 45f; // 각도
float r = 100; // 반지름
float startOffset = 10;
Pen linePen = new Pen(Color.Black, 1f);
Pen ellipsePen = new Pen(Color.Blue, 1f);
Brush degree_0_dotBrush = new SolidBrush(Color.Red);
Brush degree_90_dotBrush = new SolidBrush(Color.Yellow);
Brush degree_180_dotBrush = new SolidBrush(Color.DarkBlue);
Brush degree_270_dotBrush = new SolidBrush(Color.Green);
Brush degree_result_dotBrush = new SolidBrush(Color.BlueViolet);
private void Form1_Paint(object sender, PaintEventArgs e)
{
//외곽선 그리기
e.Graphics.DrawRectangle(linePen, startOffset, startOffset, origin.X * 2, origin.Y * 2);
//x축 그리기
e.Graphics.DrawLine(linePen, new PointF(startOffset, origin.Y + startOffset), new PointF( origin.X * 2 + startOffset, origin.Y + startOffset));
//y축 그리기
e.Graphics.DrawLine(linePen, new PointF(origin.X + startOffset, startOffset), new PointF(origin.X + startOffset, origin.Y * 2 + startOffset));
// 원그리기
e.Graphics.DrawEllipse(ellipsePen, startOffset + origin.X-r, startOffset + origin.Y-r, 2*r, 2*r);
// 0도
float x = r * (float)Math.Cos(ConvertRadian(0d));
float y = r * (float)Math.Sin(ConvertRadian(0d));
e.Graphics.FillEllipse(degree_0_dotBrush, startOffset + origin.X + x - 5f, startOffset + origin.Y + y - 5f, 10f, 10f);
// 90도
x = r * (float)Math.Cos(ConvertRadian(90d));
y = r * (float)Math.Sin(ConvertRadian(90d));
e.Graphics.FillEllipse(degree_90_dotBrush, startOffset + origin.X + x - 5f, startOffset + origin.Y + y - 5f, 10f, 10f);
// 180도
x = r * (float)Math.Cos(ConvertRadian(180d));
y = r * (float)Math.Sin(ConvertRadian(180d));
e.Graphics.FillEllipse(degree_180_dotBrush, startOffset + origin.X + x - 5f, startOffset + origin.Y + y - 5f, 10f, 10f);
// 270도
x = r * (float)Math.Cos(ConvertRadian(270d));
y = r * (float)Math.Sin(ConvertRadian(270d));
e.Graphics.FillEllipse(degree_270_dotBrush, startOffset + origin.X + x - 5f, startOffset + origin.Y + y - 5f, 10f, 10f);
// 실제 구하는 좌표 값
x = (r + 10 ) * (float)Math.Cos(ConvertRadian(90d + 45d));
y = (r + 10) * (float)Math.Sin(ConvertRadian(90d + 45d));
e.Graphics.FillEllipse(degree_result_dotBrush, startOffset + origin.X + x - 5f, startOffset + origin.Y + y - 5f, 10f, 10f);
}
private double ConvertRadian(double angle)
{
return angle * Math.PI / 180d;
}
}
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
배틀 그라운드 자기장 구현해보기 (0) | 2018.03.21 |
---|---|
Tree Node 포커스 없어도 하이라이트 표시. (0) | 2018.03.11 |
윈폼] 판넬 이동관련 처리 방법. (0) | 2017.03.23 |
그룹 박스 그리기 ( 객체 다중 선택 ) (0) | 2016.08.07 |
Scroll 같은? 눈속임?? (0) | 2016.07.22 |
SSMS 확장 프로그램.
기존에 Addins 으로 개발해서 사용하던 걸
Vspackage로 개발을 다시 하고 있다. 2014까지는 Addins으로 잘 되지만 2016부터는 안먹어서...
그나저나 2016으로 ssms는 처음 AddIns으로 개발했었는뎅... 이상하네.. 안먹는다.
2017에서도 동일하게 올라오는것을 확인했고, 기존 AddIns 기능으로 모두 옮기는 작업만 하면 된다.
1. 쿼리 포맷정렬
: 쿼리를 내가 만들어놓은 포맷 형태로 재정렬한다.
2. 쿼리에서 컬럼 뽑아내기
: 정렬된 쿼리에서 컬럼:설명을 뽑아낸다.
3. 그리드 틀고정
: 그리드의 컬럼에 대하여 고정시킨다.
- 컬럼이 아주 많을때 앞쪽 특정 열을 고정하여 뒤 데이타만 스크롤 되게 만듬 ( 엑셀 틀고정 같은 기능 )
4. 그리드 컬럼 검색
: 그리드의 컬럼이 많을때 컬럼을 검색해서 바로 찾아감.
5. 그리드 컬럼 뽑아내기
: 2014까지는 데이타가 조회안되면 컬럼목록만 뜨는데 이 컬럼목록을 기본 컨텍스트 메뉴 기능으로 복사하면 에러난다.
- 그래서 복사하는 기능을 만들었었음. 2017에선 필요없는 기능.
6. 객체 검색
: 테이블, 프로시져등... 검색하면 바로 목록으로 보여준다.
항목을 더블클릭하면 개체 탐색기에서 해당 항목으로 바로이동한다.
-- 변환 완료.
>> 기존에 addins 으로 개발되어 있던거 vspackage로 변경.
>> 2016, 2017 버젼도 완성.
추가된 기능을 일부 찍어봤음.
# 결과 탭 ( 틀고정 : 스크롤 하면 고정된 열 다음부터 스크롤 가능 )
- 첫번째 그리드 두번재 열 ( 파란색 표시 )
- 두번재 그리드 세번째 열 ( 파란색 표시 )
# 우측 검색창,
- DB의 table, procedure, function 를 검색해서 보여줌.
: 더블클릭시 개체탐색기의 이동하여 해당 개체를 선택해 줌.
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
JSFW.NPT.TEST] 테스트 이력 관리 프로그램. (1) | 2018.02.20 |
---|---|
PREZI] 드디어 배경이미지 넣었다. (0) | 2018.02.15 |
Visual Studio 확장 프로그램 (0) | 2018.01.09 |
가계부? ... 금전출납부? (0) | 2017.12.05 |
NPT, PREZI 를 사용하면서... 수정!!! (0) | 2017.09.29 |
Visual Studio 확장 프로그램
기존에 하나의 프로젝트 만들었던 비주얼스튜디오 확장 프로그램을 쪼개었다.
1. FindMethodList [O] : 소스내에 메서드 목록 탐색.
- 특정 메서드명에 포함된 단어에 색을 입혀 눈에 띄게 만듬으로 빨리 찾아가는게 가능.
>> JSFW.VS.Extensibility{2017}.FindingMethodList
2. FunctionSnippet [O] : 스니핏
- 특정 구문들을 스니핏으로 만들어 사용가능함.
>> JSFW.VS.Extensibility{2017}.FunctionSnippet
3. FunctionTodoList [0] : 화면디자이너에서 등록한 기능 목록 보기
- NPT.화면디자이너에서 등록한 기능목록을 보거나 추가, 삭제가능.
>> JSFW.VS.Extensibility{2017}.FunctionTodoList
4. ScheduleWrite [0] : NPT.작업이력관리 내역 등록
- NPT.작업이력관리 목록에 내역을 등록하는 기능
>> JSFW.VS.Extensibility{2017}.ScheduleWrite
5. SourceTip [O] : 소스팁 관리 기능
- 소스상에서 알아야 할 구문들이나 내용을 관리하는 기능. - 언제든 소스에서 확인가능!
>> JSFW.VS.Extensibility{2017}.SourceTip
6. VariableUsingView [O] : 변수사용뷰
- 소스( .cs파일내 )에서 체크한 변수의 사용처를 한 눈에 볼 수 있도록 뷰를 제공.
>> JSFW.VS.Extensibility{2017}.VariableUsingView
7. HelpPropertyDescript [△] : 프로퍼티에 대한 사용 방법 검색 ( 등록 )
- 소스의 프로퍼티명으로 검색 > 해당 타입까지 알아냄 > 사용방법의 소스를 기록후 차후에 뒤져볼 수 있음.
- Nuget 설치 필요.
>> JSFW.VS.Extensibility{2017}.HelpPropertyDescript
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
PREZI] 드디어 배경이미지 넣었다. (0) | 2018.02.15 |
---|---|
SSMS 확장 프로그램. (0) | 2018.01.18 |
가계부? ... 금전출납부? (0) | 2017.12.05 |
NPT, PREZI 를 사용하면서... 수정!!! (0) | 2017.09.29 |
JSFW] 비밀번호 관리 프로그램! (0) | 2017.09.14 |
새해 @@ 2018년...
음.. 새해가 되었네.
SQL 포맷터는 재정비를 마쳤다.
내일은 이력서 오픈 해야지.
잘 구해져야 할텐데....
올해도 열심히 일하자...
아두이노 가지고 놀아볼까?
올해는 기사 자격증이라도 따놔야겠네.
'--- 취미 > 생각하기' 카테고리의 다른 글
마이크로 녹음된 내 목소리 (0) | 2018.03.03 |
---|---|
재 계약 실패... (0) | 2018.02.02 |
3개월 쉬면서... (0) | 2017.12.27 |
무엇을 할까??? (0) | 2017.10.23 |
데브피아에 올라온 글 중에서... (0) | 2017.07.21 |