SlideShare une entreprise Scribd logo
1  sur  57
1월의 주제

2014년 새해 명품 특강!

센서 활용 앱 개발

204년 1월 22일
한국마이크로소프트 11층
2014년 1월 새해 명품 특강!

센서 활용 앱 개발

Notice
<테크데이즈 미니 앱개발 세미나 웹페이지>
앱 개발자를 위한 시리즈 세미나

<테크데이즈 미니 토요세미나 웹페이지>
개발&기술 내용을 심도있게 전달하는 시리즈 세미나

http://aka.ms/techdaysminiappdev
• 지난 세션 자료 열람
• 2월, 3월 세미나 사전등록

http://aka.ms/techdaysminisat
• 지난 세션 자료 열람(Visual Studio 2013, C#)
• 1월 25일 <ASP.NET, 서비스 플랫폼으로 날다!> 사전등록
2014년 1월 새해 명품 특강!

센서 활용 앱 개발

겨울계절학기

윈도우 8.1 스토어 앱개발

족집게 특강!

- 휴즈플로우 이길복 CTO
2014년 1월 새해 명품 특강!

센서 활용 앱 개발

경품추첨

마이크로소프트 웨지 모바일 키보드

스컬프트 컴포트 마우스

Notice
• 행사 종료 후 설문지를 작성하여 등록 데스크에 제출해 주세요. 소정의 기념품을 드립니다.
2014년 1월 새해 명품 특강!

센서 활용 앱 개발

센서와 위치정보를 이용한
LBS(Location Base Service) 만들
기
- 한국마이크로소프트 김영욱 에반젤리스트
•Lenovo Miix 2 8 - 32GB
•2-cell lithium-polymer battery
•Microsoft Office Home and Student Edition
•Owner's manual
•Dell Venue 8 Pro
•Up to 10 Hours battery life time
•Intel Bay Trail –T
•Intel® Atom™ Processor Z2760 (DC/4T, 1.8Ghz Burst,
•Intel Baytrail Z3740
1.5Ghz HFM, 600Mhz LFM)
•LED-Backlit LCD
•10.1" (16:9`) HD WXGA (1366x768), Multitouch IPS
•RAM 2048 MB
•Intel HD GMA ,64GB, WiFi, Digitizer & Pen
•Flash 32 GB
•Battery capacity 17.5 (Wh) •2GB LPDDR2, 2-cell Li-Polymer Battery, 30 Wh
•Size (w/h/d mm) 135/218/10.8 mm
•Accelerometer
•GPS/E-Compass
우리
인텔이
달라
졌어요!
국내 지도 서비스
다양한 웹 기반 API 제공
Javascript classes
http://dna.daum.net
검색 API Key 신청
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Daum 지도 API v3 예제: 기본 지도 생성하기</title>
<script type="text/javascript" src="http://apis.daum.net/maps/maps3.js?apikey=DAUM_MAPS_DEMO_APIKEY" char
set="utf-8"></script>
<script type="text/javascript">
var map;
function init() {
map = new daum.maps.Map(document.getElementById('map'), {
center: new daum.maps.LatLng(37.537123, 127.005523),
level: 3
});
}
</script>
</head>
<body onload="init()">
<div id="map" style="width:600px;height:400px;"></div>
</body>
</html>
function moving(latitude, longitude){
map.panTo(new daum.maps.LatLng(latitude, longitude));
}
function zoomIn() {
var level = map.getLevel();
if(level != 1)
map.setLevel(--level);
}
function setLevel(level) {
map.setLevel(level);
}
public sealed class StreamUriWinRTResolver : IUriToStreamResolver
{
private async Task<IInputStream> GetContent(string path)
{
try
{
Uri localUri = new Uri("ms-appx:///Html" + path);
StorageFile f = await
StorageFile.GetFileFromApplicationUriAsync(localUri);
IRandomAccessStream stream = await
f.OpenAsync(FileAccessMode.Read);
return stream;
}
catch (Exception) { throw new Exception("Invalid path"); }
}
}

}
Uri url = webMap.BuildLocalStreamUri("MyTag", "Map.html");
StreamUriWinRTResolver myResolver = new StreamUriWinRTResolver();
webMap.NavigateToLocalStreamUri(url, myResolver);
Geoposition pos = await _Geolocator.GetGeopositionAsync();
string[] temp = new string[2];
temp[0] = pos.Coordinate.Point.Position.Latitude.ToString();
temp[1] = pos.Coordinate.Point.Position.Longitude.ToString();
txtLatitude.Text = temp[0];
txtLongitude.Text = temp[1];
await webMap.InvokeScriptAsync("moving", temp);
Location Infomation
CivicAddress

Represents the civic address data associated with a geographic location.

Geocircle

Describes a geographic circle with a center point and a radius.

Geocoordinate

Contains the information for identifying a geographic location.

GeocoordinateSatelliteData

Provides additional information about a Geocoordinate. This information is only a
pplicable to position estimates obtained using satellite signals.

Geolocator

Provides access to the current geographic location.

Geopoint

Describes a geographic point.

Geoposition

Represents a location that may contain latitude and longitude data or civic addres
s data.

PositionChangedEventArgs

Provides data for the PositionChanged event.

StatusChangedEventArgs

Provides information for the StatusChanged event.
Events
PositionChanged

Raised when the location is updated.

StatusChanged

Raised when the ability of the Geolocator to provide updated location changes.

Method
GetGeopositionAsync()

Starts an asynchronous operation to retrieve the curre
nt location of the device.

GetGeopositionAsync(TimeSpan, TimeSpan)

Starts an asynchronous operation to retrieve the curre
nt location of the device.
Property
속성

사용 권한

DesiredAccuracy

읽기/쓰기

DesiredAccuracyInMeters

읽기/쓰기

LocationStatus

읽기 전용

MovementThreshold

읽기/쓰기

ReportInterval

읽기/쓰기

Description
The accuracy level at which the Geolocator provides locatio
n updates.
Gets or sets the desired accuracy in meters for data return
ed from the location service.
The status that indicates the ability of the Geolocator to pro
vide location updates.
Gets and sets the distance of movement, in meters, relative
to the coordinate from the last PositionChanged event, that
is required for the Geolocator to raise a PositionChanged e
vent.
The requested minimum time interval between location upd
ates, in milliseconds. If your application requires updates in
frequently, set this value so that the location provider can c
onserve power by calculating location only when needed.
namespace GeolocationApp
{
public sealed partial class MainPage : Page
{
private Geolocator geolocator = null;
public MainPage()
{
this.InitializeComponent();
geolocator = new Geolocator();
}
………………………………………………….
async private void btnGetLocation_Click(object sender, RoutedEventArgs e)
{
try
{
// Carry out the operation
Geoposition pos = await geolocator.GetGeopositionAsync();
tbLatitude.Text = pos.Coordinate.Latitude.ToString();
tbLongitude.Text = pos.Coordinate.Longitude.ToString();
tbAccuracy.Text = pos.Coordinate.Accuracy.ToString();
tbStatus.Text = GetStatusString(geolocator.LocationStatus);
}
catch (System.UnauthorizedAccessException)
{
……………………………….
private string GetStatusString(PositionStatus status)
{
var strStatus = "";
switch (status)

{
case PositionStatus.Ready:
strStatus = "Location is available.";
break;

PositionStatus.Initializing
PositionStatus.NoData
PositionStatus.Disabled
PositionStatus.NotInitialized
PositionStatus.NotAvailable

: 초기화
: 데이터가 들어오지 않는 경우
: 사용할 수 없는 경우
: 초기화 되지 않은 경우
: 위치 정보가 존재하지 않는 경우
private string GetStatusString(PositionStatus status)
{
var strStatus = "";
switch (status)

{
case PositionStatus.Ready:
strStatus = "Location is available.";
break;

PositionStatus.Initializing
PositionStatus.NoData
PositionStatus.Disabled
PositionStatus.NotInitialized
PositionStatus.NotAvailable

: 초기화
: 데이터가 들어오지 않는 경우
: 사용할 수 없는 경우
: 초기화 되지 않은 경우
: 위치 정보가 존재하지 않는 경우
Sensor Fusion inputs and outputs (9-Axis)
Accelerometer
Compass
Gyrometer
Inclinometer
LightSensor
OrientationSensor

가속도계
나침판
자이로스코프 센서
수평계
조도 센서
디바이스 방향 센서
Events

ReadingChanged

Occurs each time the compass reports a new sensor reading.

Method
GetCurrentReading

Gets the current compass reading.

GetDefault

Returns the default compass.

Property
MinimumReportInterval

읽기 전용

Gets the minimum report interval supported by the compass.

ReportInterval

읽기/쓰기

Gets or sets the current report interval for the compass.
Events
ReadingChanged

Occurs each time the accelerometer reports a new sensor reading.

Shaken

Occurs when the accelerometer detects that the PC has been shaken.

Method
GetCurrentReading

Gets the current accelerometer reading.

GetDefault

Returns the default accelerometer.

Property
MinimumReportInterval

읽기 전용

Gets the minimum report interval supported by the accelerometer.

ReportInterval

읽기/쓰기

Gets or sets the current report interval for the accelerometer.
Events
ReadingChanged

Occurs each time the gyrometer reports the current sensor reading.

Method
GetCurrentReading

Gets the current gyrometer reading.

GetDefault

Returns the default gyrometer.

Property
MinimumReportInterval

읽기 전용

Gets the minimum report interval supported by the gyrometer.

ReportInterval

읽기/쓰기

Gets or sets the current report interval for the gyrometer.
Events
ReadingChanged

Occurs each time the inclinometer reports the current sensor reading.

Method
GetCurrentReading

Gets the current inclinometer reading.

GetDefault

Returns the default inclinometer .

Property
MinimumReportInterval

읽기 전용

Gets the minimum report interval supported by the inclinometer

ReportInterval

읽기/쓰기

Gets or sets the current report interval for the inclinometer .
Events
ReadingChanged

Occurs each time the ambient-light reports the current sensor reading.

Method
GetCurrentReading

Gets the current ambient-light reading.

GetDefault

Returns the default ambient-light.

Property
MinimumReportInterval

읽기 전용

Gets the minimum report interval supported by the ambient-light.

ReportInterval

읽기/쓰기

Gets or sets the current report interval for the ambient-light.
ManipulationCompleted

UIElement 개체에서 조작이 완료되고 활동이 없게 될 때 발생합니다.

ManipulationDelta

입력 장치에서 조작 중에 위치를 변경하면 발생합니다.

ManipulationInertiaStarting

입력 장치에서 조작 중에 UIElement 개체와의 연결이 끊어져 활동이 없게
될 때 발생합니다.

ManipulationStarted

입력 장치가 UIElement 개체에서 조작을 시작할 때 발생합니다.

ManipulationStarting

조작 프로세서가 처음으로 만들어지면 발생합니다.
None
TranslateX
TranslateY

0
1
2

TranslateRailsX

4

TranslateRailsY

8

Rotate
Scale
TranslateInertia
RotateInertia
ScaleInertia

16
32
64
128
256

All

65535

System

65536

조작 이벤트와의 그래픽 상호 작용을 제공하지 않습니다.
X 축에서 대상을 좌표 이동하는 조작 작업을 허용합니다.
Y 축에서 대상을 좌표 이동하는 조작 작업을 허용합니다.
레일 모드를 사용하여 X 축에서 대상을 좌표 이동하는 조작 작업을 허용합
니다.
레일 모드를 사용하여 Y 축에서 대상을 좌표 이동하는 조작 작업을 허용합
니다.
대상을 회전하는 조작 작업을 허용합니다.
대상의 배율을 조정하는 조작 작업을 허용합니다.
변환 작업에 관성을 적용합니다.
회전 동작에 관성을 적용합니다.
배율 작업에 관성을 적용합니다.
Windows 8에서 직접 조작이 가능한 모드를 제외하고 모든 조작 상호 작용
모드를 활성화합니다. Windows 8.1부터는 모든 조작 상호 작용 모드를 사
용하도록 설정합니다.
Direct Manipulation을 통해 지원되는 시스템 기반 터치 상호 작용을 활성화
합니다.
생성자()

this.InitializeComponent();
this.flvMain.SelectionChanged += flvMain_SelectionChanged;

_transformGroup = new TransformGroup();
_previousTransform = new MatrixTransform()
{ Matrix = Matrix.Identity };
_compositeTransform = new CompositeTransform();
_transformGroup.Children.Add(_previousTransform);
_transformGroup.Children.Add(_compositeTransform);
flvMain.ManipulationCompleted += flvMain_ManipulationCompleted;
None
TranslateX
TranslateY

0
1
2

TranslateRailsX

4

TranslateRailsY

8

Rotate
Scale
TranslateInertia
RotateInertia
ScaleInertia

16
32
64
128
256

All

65535

System

65536

조작 이벤트와의 그래픽 상호 작용을 제공하지 않습니다.
X 축에서 대상을 좌표 이동하는 조작 작업을 허용합니다.
Y 축에서 대상을 좌표 이동하는 조작 작업을 허용합니다.
레일 모드를 사용하여 X 축에서 대상을 좌표 이동하는 조작 작업을 허용합
니다.
레일 모드를 사용하여 Y 축에서 대상을 좌표 이동하는 조작 작업을 허용합
니다.
대상을 회전하는 조작 작업을 허용합니다.
대상의 배율을 조정하는 조작 작업을 허용합니다.
변환 작업에 관성을 적용합니다.
회전 동작에 관성을 적용합니다.
배율 작업에 관성을 적용합니다.
Windows 8에서 직접 조작이 가능한 모드를 제외하고 모든 조작 상호 작용
모드를 활성화합니다. Windows 8.1부터는 모든 조작 상호 작용 모드를 사
용하도록 설정합니다.
Direct Manipulation을 통해 지원되는 시스템 기반 터치 상호 작용을 활성화
합니다.
img.ManipulationMode = ManipulationModes.TranslateX
| ManipulationModes.TranslateY
| ManipulationModes.ScaleInertia
| ManipulationModes.Scale;

img.ManipulationDelta += img_ManipulationDelta;
void img_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
_previousTransform.Matrix = _transformGroup.Value;
Point center =
_previousTransform.TransformPoint(new Point(e.Position.X, e.Position.Y));
//중심 위치를 설정
_compositeTransform.CenterX = center.X;
_compositeTransform.CenterY = center.Y;
//변화된 X, Y 좌표를 적용한다.
_compositeTransform.TranslateX = e.Delta.Translation.X;
_compositeTransform.TranslateY = e.Delta.Translation.Y;
double aw = ((Image)e.OriginalSource).ActualWidth *
_previousTransform.Matrix.M11;
double movePoint = aw + _previousTransform.Matrix.OffsetX;
double movePersent = movePoint / flvMain.ActualWidth * 100;
//변화된 크기를 적용한다.
_compositeTransform.ScaleX = _compositeTransform.ScaleY = e.Delta.Scale;
e.Handled = true;
}
this.PreviousPageNumber = this.CurrentPageNumber;
this.CurrentPageNumber = flvMain.SelectedIndex;
_previousTransform.Matrix = new Matrix(1, 0, 0, 1, 0, 0);
((Image)flvMain.Items[this.PreviousPageNumber]).RenderTransform =
null; ((Image)flvMain.Items[this.CurrentPageNumber]).RenderTransform =
_transformGroup;
txtPageView.Text = this.CurrentPageNumber.ToString()
+ " / " + flvMain.Items.Count().ToString();
2시간만에 끝내는
콘텐츠 앱 개발

경품추첨

블루투스이어폰

손난로 겸용 충전기

Notice
• 행사 종료 후 설문지를 작성하여 등록 데스크에 제출해 주세요. 소정의 기념품을 드립니다.
http://sdrv.ms/11igPnr

THANK YOU
함께 삽질 할 때,
우린 아무것도 두려울 것이 없었다 !

윈도우 & 윈도우폰 개발 모임 시즌3
1월 16일 ~ 3월 27일

개발주제

자유

참석 조건

개발의지만 있다면 누구나 , 최소 3회 참여

날짜

격주 목요일

다음 모임

1월 28일 (화) : 설 연휴 관계로 이날만 화요일

특전

개발

기간

장소 지원 (at 광화문오피스)
다과 및 뒷풀이
시즌 종료까지 앱 업로드를 마친 개발자에게
경품 증정
App of 시즌3 수상자에게 8인치 Tablet 증정

기대효과

개발 이슈 및 주요 내용 공유
고수의 원포인트 레슨
개발 중간내용을 공유하며 개발 동기부여

참여방법

페이스북 페이지 좋아요 클릭 & 모임 출석
https://www.facebook.com/groups/vvapps/
2014년 1월 새해 명품 특강!

센서 활용 앱 개발

경품추첨

마이크로소프트 웨지 모바일 키보드

스컬프트 컴포트 마우스

Notice
• 행사 종료 후 설문지를 작성하여 등록 데스크에 제출해 주세요. 소정의 기념품을 드립니다.

Contenu connexe

Similaire à 20140122 techdays mini 앱 개발 세미나(3) - 센서활용 앱 개발

Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기jongho jeong
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
C# Game Server
C# Game ServerC# Game Server
C# Game Serverlactrious
 
Android 기초강좌 애플리캐이션 구조
Android 기초강좌 애플리캐이션 구조Android 기초강좌 애플리캐이션 구조
Android 기초강좌 애플리캐이션 구조Sangon Lee
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs기동 이
 
반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게Sungju Jin
 
Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee
 
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출GDG Korea
 
Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용지원 이
 
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발LGU+
 
[2022]NaverMeetup_[Flutter] Dependency Injection과 Service Locator_임태규.pdf
[2022]NaverMeetup_[Flutter] Dependency Injection과 Service Locator_임태규.pdf[2022]NaverMeetup_[Flutter] Dependency Injection과 Service Locator_임태규.pdf
[2022]NaverMeetup_[Flutter] Dependency Injection과 Service Locator_임태규.pdfTaekyu Lim
 
IoT Web App - 수집된 정보의 가공, 처리, 융합
IoT Web App - 수집된 정보의 가공, 처리, 융합IoT Web App - 수집된 정보의 가공, 처리, 융합
IoT Web App - 수집된 정보의 가공, 처리, 융합Hyunghun Cho
 
Do IoT Yourself! - 사물 간의 연결을 위한 Open API
Do IoT Yourself! - 사물 간의 연결을 위한 Open APIDo IoT Yourself! - 사물 간의 연결을 위한 Open API
Do IoT Yourself! - 사물 간의 연결을 위한 Open APIHyunghun Cho
 
5-3. html5 device access
5-3. html5 device access5-3. html5 device access
5-3. html5 device accessJinKyoungHeo
 
20131217 html5
20131217 html520131217 html5
20131217 html5DK Lee
 
Node.js and react
Node.js and reactNode.js and react
Node.js and reactHyungKuIm
 
Hoons 닷넷 정기세미나
Hoons 닷넷 정기세미나Hoons 닷넷 정기세미나
Hoons 닷넷 정기세미나병걸 윤
 

Similaire à 20140122 techdays mini 앱 개발 세미나(3) - 센서활용 앱 개발 (20)

Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
C# Game Server
C# Game ServerC# Game Server
C# Game Server
 
Android 기초강좌 애플리캐이션 구조
Android 기초강좌 애플리캐이션 구조Android 기초강좌 애플리캐이션 구조
Android 기초강좌 애플리캐이션 구조
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
 
반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게반복적인 작업이 싫은 안드로이드 개발자에게
반복적인 작업이 싫은 안드로이드 개발자에게
 
Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계
 
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
GKAC 2015 Apr. - Battery, 안드로이드를 위한 쉬운 웹 API 호출
 
Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용
 
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 
[2022]NaverMeetup_[Flutter] Dependency Injection과 Service Locator_임태규.pdf
[2022]NaverMeetup_[Flutter] Dependency Injection과 Service Locator_임태규.pdf[2022]NaverMeetup_[Flutter] Dependency Injection과 Service Locator_임태규.pdf
[2022]NaverMeetup_[Flutter] Dependency Injection과 Service Locator_임태규.pdf
 
IoT Web App - 수집된 정보의 가공, 처리, 융합
IoT Web App - 수집된 정보의 가공, 처리, 융합IoT Web App - 수집된 정보의 가공, 처리, 융합
IoT Web App - 수집된 정보의 가공, 처리, 융합
 
Do IoT Yourself! - 사물 간의 연결을 위한 Open API
Do IoT Yourself! - 사물 간의 연결을 위한 Open APIDo IoT Yourself! - 사물 간의 연결을 위한 Open API
Do IoT Yourself! - 사물 간의 연결을 위한 Open API
 
Web workers
Web workersWeb workers
Web workers
 
5-3. html5 device access
5-3. html5 device access5-3. html5 device access
5-3. html5 device access
 
20131217 html5
20131217 html520131217 html5
20131217 html5
 
Node.js and react
Node.js and reactNode.js and react
Node.js and react
 
Spring boot actuator
Spring boot   actuatorSpring boot   actuator
Spring boot actuator
 
Hoons 닷넷 정기세미나
Hoons 닷넷 정기세미나Hoons 닷넷 정기세미나
Hoons 닷넷 정기세미나
 
Nest js 101
Nest js 101Nest js 101
Nest js 101
 

Plus de 영욱 김

20170701 microsoft 오픈소스의 종류와 활용법
20170701 microsoft 오픈소스의 종류와 활용법20170701 microsoft 오픈소스의 종류와 활용법
20170701 microsoft 오픈소스의 종류와 활용법영욱 김
 
20160511 Azure Datacenter
20160511 Azure Datacenter20160511 Azure Datacenter
20160511 Azure Datacenter영욱 김
 
20160511 azure를 기반으로한 인공지능 io t 생태계 구축 전략
20160511 azure를 기반으로한 인공지능 io t 생태계 구축 전략20160511 azure를 기반으로한 인공지능 io t 생태계 구축 전략
20160511 azure를 기반으로한 인공지능 io t 생태계 구축 전략영욱 김
 
20160412 이미테이션 게임과 it기업들의 인공지능
20160412 이미테이션 게임과 it기업들의 인공지능20160412 이미테이션 게임과 it기업들의 인공지능
20160412 이미테이션 게임과 it기업들의 인공지능영욱 김
 
20160409 서브라임텍스트 대신 visual studio code로 만들어 보는 웹 환경
20160409 서브라임텍스트 대신 visual studio code로 만들어 보는 웹 환경20160409 서브라임텍스트 대신 visual studio code로 만들어 보는 웹 환경
20160409 서브라임텍스트 대신 visual studio code로 만들어 보는 웹 환경영욱 김
 
20160408 smart farm
20160408 smart farm20160408 smart farm
20160408 smart farm영욱 김
 
20151117 IoT를 위한 서비스 구성과 개발
20151117 IoT를 위한 서비스 구성과 개발20151117 IoT를 위한 서비스 구성과 개발
20151117 IoT를 위한 서비스 구성과 개발영욱 김
 
20150728 100분만에 배우는 windows 10 앱 개발
20150728 100분만에 배우는 windows 10 앱 개발20150728 100분만에 배우는 windows 10 앱 개발
20150728 100분만에 배우는 windows 10 앱 개발영욱 김
 
20150912 windows 10 앱 tips tricks
20150912 windows 10 앱 tips  tricks20150912 windows 10 앱 tips  tricks
20150912 windows 10 앱 tips tricks영욱 김
 
20150912 IoT 디바이스를 위한 windows 10 iot core 입문
20150912 IoT 디바이스를 위한 windows 10 iot core 입문20150912 IoT 디바이스를 위한 windows 10 iot core 입문
20150912 IoT 디바이스를 위한 windows 10 iot core 입문영욱 김
 
20150912 Adaptive UI 권영철
20150912 Adaptive UI 권영철20150912 Adaptive UI 권영철
20150912 Adaptive UI 권영철영욱 김
 
201500912 Hello Windows 10
201500912 Hello Windows 10201500912 Hello Windows 10
201500912 Hello Windows 10영욱 김
 
4시간만에 따라해보는 Windows 10 앱 개발 샘플코드
4시간만에 따라해보는 Windows 10 앱 개발 샘플코드4시간만에 따라해보는 Windows 10 앱 개발 샘플코드
4시간만에 따라해보는 Windows 10 앱 개발 샘플코드영욱 김
 
20150812 4시간만에 따라해보는 windows 10 앱 개발
20150812  4시간만에 따라해보는 windows 10 앱 개발20150812  4시간만에 따라해보는 windows 10 앱 개발
20150812 4시간만에 따라해보는 windows 10 앱 개발영욱 김
 
Arduino Coding
Arduino CodingArduino Coding
Arduino Coding영욱 김
 
C Language For Arduino
C Language For ArduinoC Language For Arduino
C Language For Arduino영욱 김
 
IoT Devices And Arduino
IoT Devices And ArduinoIoT Devices And Arduino
IoT Devices And Arduino영욱 김
 
20150212 사례로보는 Microsoft IoT와 서비스 개발
20150212 사례로보는 Microsoft IoT와 서비스 개발20150212 사례로보는 Microsoft IoT와 서비스 개발
20150212 사례로보는 Microsoft IoT와 서비스 개발영욱 김
 
20150207 Node.js on Azure - MeltingPot seminar in Busan
20150207 Node.js on Azure - MeltingPot seminar in Busan20150207 Node.js on Azure - MeltingPot seminar in Busan
20150207 Node.js on Azure - MeltingPot seminar in Busan영욱 김
 
크로스 플랫폼 기술과 오픈소스로 진화하는 Microsoft의 개발자 생태게
크로스 플랫폼 기술과 오픈소스로 진화하는 Microsoft의 개발자 생태게 크로스 플랫폼 기술과 오픈소스로 진화하는 Microsoft의 개발자 생태게
크로스 플랫폼 기술과 오픈소스로 진화하는 Microsoft의 개발자 생태게 영욱 김
 

Plus de 영욱 김 (20)

20170701 microsoft 오픈소스의 종류와 활용법
20170701 microsoft 오픈소스의 종류와 활용법20170701 microsoft 오픈소스의 종류와 활용법
20170701 microsoft 오픈소스의 종류와 활용법
 
20160511 Azure Datacenter
20160511 Azure Datacenter20160511 Azure Datacenter
20160511 Azure Datacenter
 
20160511 azure를 기반으로한 인공지능 io t 생태계 구축 전략
20160511 azure를 기반으로한 인공지능 io t 생태계 구축 전략20160511 azure를 기반으로한 인공지능 io t 생태계 구축 전략
20160511 azure를 기반으로한 인공지능 io t 생태계 구축 전략
 
20160412 이미테이션 게임과 it기업들의 인공지능
20160412 이미테이션 게임과 it기업들의 인공지능20160412 이미테이션 게임과 it기업들의 인공지능
20160412 이미테이션 게임과 it기업들의 인공지능
 
20160409 서브라임텍스트 대신 visual studio code로 만들어 보는 웹 환경
20160409 서브라임텍스트 대신 visual studio code로 만들어 보는 웹 환경20160409 서브라임텍스트 대신 visual studio code로 만들어 보는 웹 환경
20160409 서브라임텍스트 대신 visual studio code로 만들어 보는 웹 환경
 
20160408 smart farm
20160408 smart farm20160408 smart farm
20160408 smart farm
 
20151117 IoT를 위한 서비스 구성과 개발
20151117 IoT를 위한 서비스 구성과 개발20151117 IoT를 위한 서비스 구성과 개발
20151117 IoT를 위한 서비스 구성과 개발
 
20150728 100분만에 배우는 windows 10 앱 개발
20150728 100분만에 배우는 windows 10 앱 개발20150728 100분만에 배우는 windows 10 앱 개발
20150728 100분만에 배우는 windows 10 앱 개발
 
20150912 windows 10 앱 tips tricks
20150912 windows 10 앱 tips  tricks20150912 windows 10 앱 tips  tricks
20150912 windows 10 앱 tips tricks
 
20150912 IoT 디바이스를 위한 windows 10 iot core 입문
20150912 IoT 디바이스를 위한 windows 10 iot core 입문20150912 IoT 디바이스를 위한 windows 10 iot core 입문
20150912 IoT 디바이스를 위한 windows 10 iot core 입문
 
20150912 Adaptive UI 권영철
20150912 Adaptive UI 권영철20150912 Adaptive UI 권영철
20150912 Adaptive UI 권영철
 
201500912 Hello Windows 10
201500912 Hello Windows 10201500912 Hello Windows 10
201500912 Hello Windows 10
 
4시간만에 따라해보는 Windows 10 앱 개발 샘플코드
4시간만에 따라해보는 Windows 10 앱 개발 샘플코드4시간만에 따라해보는 Windows 10 앱 개발 샘플코드
4시간만에 따라해보는 Windows 10 앱 개발 샘플코드
 
20150812 4시간만에 따라해보는 windows 10 앱 개발
20150812  4시간만에 따라해보는 windows 10 앱 개발20150812  4시간만에 따라해보는 windows 10 앱 개발
20150812 4시간만에 따라해보는 windows 10 앱 개발
 
Arduino Coding
Arduino CodingArduino Coding
Arduino Coding
 
C Language For Arduino
C Language For ArduinoC Language For Arduino
C Language For Arduino
 
IoT Devices And Arduino
IoT Devices And ArduinoIoT Devices And Arduino
IoT Devices And Arduino
 
20150212 사례로보는 Microsoft IoT와 서비스 개발
20150212 사례로보는 Microsoft IoT와 서비스 개발20150212 사례로보는 Microsoft IoT와 서비스 개발
20150212 사례로보는 Microsoft IoT와 서비스 개발
 
20150207 Node.js on Azure - MeltingPot seminar in Busan
20150207 Node.js on Azure - MeltingPot seminar in Busan20150207 Node.js on Azure - MeltingPot seminar in Busan
20150207 Node.js on Azure - MeltingPot seminar in Busan
 
크로스 플랫폼 기술과 오픈소스로 진화하는 Microsoft의 개발자 생태게
크로스 플랫폼 기술과 오픈소스로 진화하는 Microsoft의 개발자 생태게 크로스 플랫폼 기술과 오픈소스로 진화하는 Microsoft의 개발자 생태게
크로스 플랫폼 기술과 오픈소스로 진화하는 Microsoft의 개발자 생태게
 

Dernier

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 

Dernier (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

20140122 techdays mini 앱 개발 세미나(3) - 센서활용 앱 개발

  • 1. 1월의 주제 2014년 새해 명품 특강! 센서 활용 앱 개발 204년 1월 22일 한국마이크로소프트 11층
  • 2. 2014년 1월 새해 명품 특강! 센서 활용 앱 개발 Notice <테크데이즈 미니 앱개발 세미나 웹페이지> 앱 개발자를 위한 시리즈 세미나 <테크데이즈 미니 토요세미나 웹페이지> 개발&기술 내용을 심도있게 전달하는 시리즈 세미나 http://aka.ms/techdaysminiappdev • 지난 세션 자료 열람 • 2월, 3월 세미나 사전등록 http://aka.ms/techdaysminisat • 지난 세션 자료 열람(Visual Studio 2013, C#) • 1월 25일 <ASP.NET, 서비스 플랫폼으로 날다!> 사전등록
  • 3. 2014년 1월 새해 명품 특강! 센서 활용 앱 개발 겨울계절학기 윈도우 8.1 스토어 앱개발 족집게 특강! - 휴즈플로우 이길복 CTO
  • 4. 2014년 1월 새해 명품 특강! 센서 활용 앱 개발 경품추첨 마이크로소프트 웨지 모바일 키보드 스컬프트 컴포트 마우스 Notice • 행사 종료 후 설문지를 작성하여 등록 데스크에 제출해 주세요. 소정의 기념품을 드립니다.
  • 5. 2014년 1월 새해 명품 특강! 센서 활용 앱 개발 센서와 위치정보를 이용한 LBS(Location Base Service) 만들 기 - 한국마이크로소프트 김영욱 에반젤리스트
  • 6.
  • 7. •Lenovo Miix 2 8 - 32GB •2-cell lithium-polymer battery •Microsoft Office Home and Student Edition •Owner's manual •Dell Venue 8 Pro •Up to 10 Hours battery life time •Intel Bay Trail –T
  • 8. •Intel® Atom™ Processor Z2760 (DC/4T, 1.8Ghz Burst, •Intel Baytrail Z3740 1.5Ghz HFM, 600Mhz LFM) •LED-Backlit LCD •10.1" (16:9`) HD WXGA (1366x768), Multitouch IPS •RAM 2048 MB •Intel HD GMA ,64GB, WiFi, Digitizer & Pen •Flash 32 GB •Battery capacity 17.5 (Wh) •2GB LPDDR2, 2-cell Li-Polymer Battery, 30 Wh •Size (w/h/d mm) 135/218/10.8 mm •Accelerometer •GPS/E-Compass
  • 10.
  • 11.
  • 12. 국내 지도 서비스 다양한 웹 기반 API 제공 Javascript classes
  • 14. 검색 API Key 신청
  • 15. <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Daum 지도 API v3 예제: 기본 지도 생성하기</title> <script type="text/javascript" src="http://apis.daum.net/maps/maps3.js?apikey=DAUM_MAPS_DEMO_APIKEY" char set="utf-8"></script> <script type="text/javascript"> var map; function init() { map = new daum.maps.Map(document.getElementById('map'), { center: new daum.maps.LatLng(37.537123, 127.005523), level: 3 }); } </script> </head> <body onload="init()"> <div id="map" style="width:600px;height:400px;"></div> </body> </html>
  • 16. function moving(latitude, longitude){ map.panTo(new daum.maps.LatLng(latitude, longitude)); } function zoomIn() { var level = map.getLevel(); if(level != 1) map.setLevel(--level); } function setLevel(level) { map.setLevel(level); }
  • 17. public sealed class StreamUriWinRTResolver : IUriToStreamResolver { private async Task<IInputStream> GetContent(string path) { try { Uri localUri = new Uri("ms-appx:///Html" + path); StorageFile f = await StorageFile.GetFileFromApplicationUriAsync(localUri); IRandomAccessStream stream = await f.OpenAsync(FileAccessMode.Read); return stream; } catch (Exception) { throw new Exception("Invalid path"); } } } }
  • 18. Uri url = webMap.BuildLocalStreamUri("MyTag", "Map.html"); StreamUriWinRTResolver myResolver = new StreamUriWinRTResolver(); webMap.NavigateToLocalStreamUri(url, myResolver);
  • 19. Geoposition pos = await _Geolocator.GetGeopositionAsync(); string[] temp = new string[2]; temp[0] = pos.Coordinate.Point.Position.Latitude.ToString(); temp[1] = pos.Coordinate.Point.Position.Longitude.ToString(); txtLatitude.Text = temp[0]; txtLongitude.Text = temp[1]; await webMap.InvokeScriptAsync("moving", temp);
  • 20.
  • 22. CivicAddress Represents the civic address data associated with a geographic location. Geocircle Describes a geographic circle with a center point and a radius. Geocoordinate Contains the information for identifying a geographic location. GeocoordinateSatelliteData Provides additional information about a Geocoordinate. This information is only a pplicable to position estimates obtained using satellite signals. Geolocator Provides access to the current geographic location. Geopoint Describes a geographic point. Geoposition Represents a location that may contain latitude and longitude data or civic addres s data. PositionChangedEventArgs Provides data for the PositionChanged event. StatusChangedEventArgs Provides information for the StatusChanged event.
  • 23. Events PositionChanged Raised when the location is updated. StatusChanged Raised when the ability of the Geolocator to provide updated location changes. Method GetGeopositionAsync() Starts an asynchronous operation to retrieve the curre nt location of the device. GetGeopositionAsync(TimeSpan, TimeSpan) Starts an asynchronous operation to retrieve the curre nt location of the device.
  • 24. Property 속성 사용 권한 DesiredAccuracy 읽기/쓰기 DesiredAccuracyInMeters 읽기/쓰기 LocationStatus 읽기 전용 MovementThreshold 읽기/쓰기 ReportInterval 읽기/쓰기 Description The accuracy level at which the Geolocator provides locatio n updates. Gets or sets the desired accuracy in meters for data return ed from the location service. The status that indicates the ability of the Geolocator to pro vide location updates. Gets and sets the distance of movement, in meters, relative to the coordinate from the last PositionChanged event, that is required for the Geolocator to raise a PositionChanged e vent. The requested minimum time interval between location upd ates, in milliseconds. If your application requires updates in frequently, set this value so that the location provider can c onserve power by calculating location only when needed.
  • 25. namespace GeolocationApp { public sealed partial class MainPage : Page { private Geolocator geolocator = null; public MainPage() { this.InitializeComponent(); geolocator = new Geolocator(); } ………………………………………………….
  • 26. async private void btnGetLocation_Click(object sender, RoutedEventArgs e) { try { // Carry out the operation Geoposition pos = await geolocator.GetGeopositionAsync(); tbLatitude.Text = pos.Coordinate.Latitude.ToString(); tbLongitude.Text = pos.Coordinate.Longitude.ToString(); tbAccuracy.Text = pos.Coordinate.Accuracy.ToString(); tbStatus.Text = GetStatusString(geolocator.LocationStatus); } catch (System.UnauthorizedAccessException) { ……………………………….
  • 27. private string GetStatusString(PositionStatus status) { var strStatus = ""; switch (status) { case PositionStatus.Ready: strStatus = "Location is available."; break; PositionStatus.Initializing PositionStatus.NoData PositionStatus.Disabled PositionStatus.NotInitialized PositionStatus.NotAvailable : 초기화 : 데이터가 들어오지 않는 경우 : 사용할 수 없는 경우 : 초기화 되지 않은 경우 : 위치 정보가 존재하지 않는 경우
  • 28. private string GetStatusString(PositionStatus status) { var strStatus = ""; switch (status) { case PositionStatus.Ready: strStatus = "Location is available."; break; PositionStatus.Initializing PositionStatus.NoData PositionStatus.Disabled PositionStatus.NotInitialized PositionStatus.NotAvailable : 초기화 : 데이터가 들어오지 않는 경우 : 사용할 수 없는 경우 : 초기화 되지 않은 경우 : 위치 정보가 존재하지 않는 경우
  • 29.
  • 30. Sensor Fusion inputs and outputs (9-Axis)
  • 32. Events ReadingChanged Occurs each time the compass reports a new sensor reading. Method GetCurrentReading Gets the current compass reading. GetDefault Returns the default compass. Property MinimumReportInterval 읽기 전용 Gets the minimum report interval supported by the compass. ReportInterval 읽기/쓰기 Gets or sets the current report interval for the compass.
  • 33.
  • 34. Events ReadingChanged Occurs each time the accelerometer reports a new sensor reading. Shaken Occurs when the accelerometer detects that the PC has been shaken. Method GetCurrentReading Gets the current accelerometer reading. GetDefault Returns the default accelerometer. Property MinimumReportInterval 읽기 전용 Gets the minimum report interval supported by the accelerometer. ReportInterval 읽기/쓰기 Gets or sets the current report interval for the accelerometer.
  • 35.
  • 36. Events ReadingChanged Occurs each time the gyrometer reports the current sensor reading. Method GetCurrentReading Gets the current gyrometer reading. GetDefault Returns the default gyrometer. Property MinimumReportInterval 읽기 전용 Gets the minimum report interval supported by the gyrometer. ReportInterval 읽기/쓰기 Gets or sets the current report interval for the gyrometer.
  • 37.
  • 38. Events ReadingChanged Occurs each time the inclinometer reports the current sensor reading. Method GetCurrentReading Gets the current inclinometer reading. GetDefault Returns the default inclinometer . Property MinimumReportInterval 읽기 전용 Gets the minimum report interval supported by the inclinometer ReportInterval 읽기/쓰기 Gets or sets the current report interval for the inclinometer .
  • 39.
  • 40. Events ReadingChanged Occurs each time the ambient-light reports the current sensor reading. Method GetCurrentReading Gets the current ambient-light reading. GetDefault Returns the default ambient-light. Property MinimumReportInterval 읽기 전용 Gets the minimum report interval supported by the ambient-light. ReportInterval 읽기/쓰기 Gets or sets the current report interval for the ambient-light.
  • 41.
  • 42. ManipulationCompleted UIElement 개체에서 조작이 완료되고 활동이 없게 될 때 발생합니다. ManipulationDelta 입력 장치에서 조작 중에 위치를 변경하면 발생합니다. ManipulationInertiaStarting 입력 장치에서 조작 중에 UIElement 개체와의 연결이 끊어져 활동이 없게 될 때 발생합니다. ManipulationStarted 입력 장치가 UIElement 개체에서 조작을 시작할 때 발생합니다. ManipulationStarting 조작 프로세서가 처음으로 만들어지면 발생합니다.
  • 43. None TranslateX TranslateY 0 1 2 TranslateRailsX 4 TranslateRailsY 8 Rotate Scale TranslateInertia RotateInertia ScaleInertia 16 32 64 128 256 All 65535 System 65536 조작 이벤트와의 그래픽 상호 작용을 제공하지 않습니다. X 축에서 대상을 좌표 이동하는 조작 작업을 허용합니다. Y 축에서 대상을 좌표 이동하는 조작 작업을 허용합니다. 레일 모드를 사용하여 X 축에서 대상을 좌표 이동하는 조작 작업을 허용합 니다. 레일 모드를 사용하여 Y 축에서 대상을 좌표 이동하는 조작 작업을 허용합 니다. 대상을 회전하는 조작 작업을 허용합니다. 대상의 배율을 조정하는 조작 작업을 허용합니다. 변환 작업에 관성을 적용합니다. 회전 동작에 관성을 적용합니다. 배율 작업에 관성을 적용합니다. Windows 8에서 직접 조작이 가능한 모드를 제외하고 모든 조작 상호 작용 모드를 활성화합니다. Windows 8.1부터는 모든 조작 상호 작용 모드를 사 용하도록 설정합니다. Direct Manipulation을 통해 지원되는 시스템 기반 터치 상호 작용을 활성화 합니다.
  • 44. 생성자() this.InitializeComponent(); this.flvMain.SelectionChanged += flvMain_SelectionChanged; _transformGroup = new TransformGroup(); _previousTransform = new MatrixTransform() { Matrix = Matrix.Identity }; _compositeTransform = new CompositeTransform(); _transformGroup.Children.Add(_previousTransform); _transformGroup.Children.Add(_compositeTransform); flvMain.ManipulationCompleted += flvMain_ManipulationCompleted;
  • 45. None TranslateX TranslateY 0 1 2 TranslateRailsX 4 TranslateRailsY 8 Rotate Scale TranslateInertia RotateInertia ScaleInertia 16 32 64 128 256 All 65535 System 65536 조작 이벤트와의 그래픽 상호 작용을 제공하지 않습니다. X 축에서 대상을 좌표 이동하는 조작 작업을 허용합니다. Y 축에서 대상을 좌표 이동하는 조작 작업을 허용합니다. 레일 모드를 사용하여 X 축에서 대상을 좌표 이동하는 조작 작업을 허용합 니다. 레일 모드를 사용하여 Y 축에서 대상을 좌표 이동하는 조작 작업을 허용합 니다. 대상을 회전하는 조작 작업을 허용합니다. 대상의 배율을 조정하는 조작 작업을 허용합니다. 변환 작업에 관성을 적용합니다. 회전 동작에 관성을 적용합니다. 배율 작업에 관성을 적용합니다. Windows 8에서 직접 조작이 가능한 모드를 제외하고 모든 조작 상호 작용 모드를 활성화합니다. Windows 8.1부터는 모든 조작 상호 작용 모드를 사 용하도록 설정합니다. Direct Manipulation을 통해 지원되는 시스템 기반 터치 상호 작용을 활성화 합니다.
  • 46. img.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateY | ManipulationModes.ScaleInertia | ManipulationModes.Scale; img.ManipulationDelta += img_ManipulationDelta;
  • 47. void img_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) { _previousTransform.Matrix = _transformGroup.Value; Point center = _previousTransform.TransformPoint(new Point(e.Position.X, e.Position.Y)); //중심 위치를 설정 _compositeTransform.CenterX = center.X; _compositeTransform.CenterY = center.Y; //변화된 X, Y 좌표를 적용한다. _compositeTransform.TranslateX = e.Delta.Translation.X; _compositeTransform.TranslateY = e.Delta.Translation.Y;
  • 48. double aw = ((Image)e.OriginalSource).ActualWidth * _previousTransform.Matrix.M11; double movePoint = aw + _previousTransform.Matrix.OffsetX; double movePersent = movePoint / flvMain.ActualWidth * 100; //변화된 크기를 적용한다. _compositeTransform.ScaleX = _compositeTransform.ScaleY = e.Delta.Scale; e.Handled = true; }
  • 49. this.PreviousPageNumber = this.CurrentPageNumber; this.CurrentPageNumber = flvMain.SelectedIndex; _previousTransform.Matrix = new Matrix(1, 0, 0, 1, 0, 0); ((Image)flvMain.Items[this.PreviousPageNumber]).RenderTransform = null; ((Image)flvMain.Items[this.CurrentPageNumber]).RenderTransform = _transformGroup; txtPageView.Text = this.CurrentPageNumber.ToString() + " / " + flvMain.Items.Count().ToString();
  • 50. 2시간만에 끝내는 콘텐츠 앱 개발 경품추첨 블루투스이어폰 손난로 겸용 충전기 Notice • 행사 종료 후 설문지를 작성하여 등록 데스크에 제출해 주세요. 소정의 기념품을 드립니다.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56. 함께 삽질 할 때, 우린 아무것도 두려울 것이 없었다 ! 윈도우 & 윈도우폰 개발 모임 시즌3 1월 16일 ~ 3월 27일 개발주제 자유 참석 조건 개발의지만 있다면 누구나 , 최소 3회 참여 날짜 격주 목요일 다음 모임 1월 28일 (화) : 설 연휴 관계로 이날만 화요일 특전 개발 기간 장소 지원 (at 광화문오피스) 다과 및 뒷풀이 시즌 종료까지 앱 업로드를 마친 개발자에게 경품 증정 App of 시즌3 수상자에게 8인치 Tablet 증정 기대효과 개발 이슈 및 주요 내용 공유 고수의 원포인트 레슨 개발 중간내용을 공유하며 개발 동기부여 참여방법 페이스북 페이지 좋아요 클릭 & 모임 출석 https://www.facebook.com/groups/vvapps/
  • 57. 2014년 1월 새해 명품 특강! 센서 활용 앱 개발 경품추첨 마이크로소프트 웨지 모바일 키보드 스컬프트 컴포트 마우스 Notice • 행사 종료 후 설문지를 작성하여 등록 데스크에 제출해 주세요. 소정의 기념품을 드립니다.

Notes de l'éditeur

  1. The 9-axis system is standard equipment in Windows 8 tablets (designed and certified) .. Accelerometer == acceleration due to gravity.. Gyro == rotational speeds around x,y,z of the device.. Magnetometer == magenetic field strenghts.. Pass-through data is easy.. Hardware accelerometer data is given to you via an accelerometer API.. The interesting magic happens when we get to sensor fusion.. Compass is a tilt-compensated compass you can use to always know where north is.. Inclinomenter = yaw pitch and raw.. Representing device orientation in 3D space.. DeviceOrientation exposes rotation matrix data..
  2. The 9-axis system is standard equipment in Windows 8 tablets (designed and certified) .. Accelerometer == acceleration due to gravity.. Gyro == rotational speeds around x,y,z of the device.. Magnetometer == magenetic field strenghts.. Pass-through data is easy.. Hardware accelerometer data is given to you via an accelerometer API.. The interesting magic happens when we get to sensor fusion.. Compass is a tilt-compensated compass you can use to always know where north is.. Inclinomenter = yaw pitch and raw.. Representing device orientation in 3D space.. DeviceOrientation exposes rotation matrix data..